Don't wrongly apply metadata-filtered hooks to examples that opt out.
Merge `(any|all)_apply?` methods with predicate arg.

There's no reason to keep these separated now that the
implementations aren't any different besides the predicate.
Add missing spec coverage for `apply?(:any)` vs `apply?(:all)`.

We were a bit underspecified here.
Merge pull request #1796 from rspec/fix-all-apply

Fix all apply
Refactor how context hooks get run.

- Move `descendant_filtered_examples.empty?` check
  out into the `run` method.
- This allows us to only create the instances for
  the context hooks if we need to actually run the
  hooks.
- Move `before_context_ivars.clear` into
  `run_after_context_hooks`. This gives it
  parity with `run_before_context_hooks`.
Remove unneeded layer of indirection.
Fix doc string.
Apply module inclusion to individual examples when filtered.

Previously it only applied to filtered groups. Luckily,
ruby’s object model supports this very easily through
the use of singleton classes.
Refactor configuration module implementation.

When configuring an example, we only want to include
modules (extending one would not make sense), so this
refactoring allows us to skip that part.
Ensure shared contexts applied to one example have their hooks run.
Got things to work on 1.8.7.
Run `:context` hooks from shared contexts that apply to one example.
Make :context hooks in config apply to individual matching examples.