Relagate `filter` methods to a `FilteringDirective` subtype. This
isolates other directives from the no-op filter strangeness, and opens
up some possibilities of useful filtering.
Construct `FilterDirective` where possible, to enable filtering.

When a directive is constructed via `when ... orElse` or
`Directive#orElse`, we can filter a successful result and fall back to
the orElse directive. This allows for ad-hoc extention of directive
requirements in the `if` clause of a for expression.

Added a demonstration to DirectiveSpec.
Fix spelling error.
Merge pull request #258 from unfiltered/directive_filter

Support ad-hoc filtering of directives