Filters Manage Dependencies

Fixes #77

* Add dependency management test cases for each `Filter` with a
  dependency
* Add `assert_dependency_management_error` custom assertion which
  asserts a custom exception and message are raised if a dependency
  is missing
* Move all `Filter` dependencies to `Gemfile` `:test` block for
  test cases and CI
* Implement `TestingDependency` helper to abstract unloading and
  loading `Gemfile` `:test` block gems when asserting dependency
  management errors
* Implement `MissingDependencyException` custom exception with
 `MESSAGE` constant as a format string, so each `Filter` raises a
  uniform exception
* Add `begin..rescue..end` blocks around each `Filter` `require`
  statement to raise a `MissingDependencyException` when a gem can
  not be loaded
* Update README.md detailing new dependency management with listing
  of `Filter` gem dependencies
* Add gemspec post install message to inform users their apps must
  bundle `Filter` dependencies