Custom Directive API improvements

- `isLiteral`, `isEmpty` and `isFn` are now explicit options.
- bind() now get the initial value as the argument.