lib/directive.js
function Directive (directive) {
  Rule.call(this)
  this.enabled = true
  this.directive = directive
  this.name = directive.$name || directive.name
}
function Directive (directive) {
  Rule.call(this)
  this.enabled = true
  this.directive = directive
  this.name = directive.$name || directive.name
}
Directive encapsulates a directive function providing convenient
methods and abstractions used by toxy higher layers to manage and configure directives.

@param {Function} directive
@class Directive
@extends Rule