Add define_negated_matcher

This is PR is a result of the discussion and work done on: https://github.com/rspec/rspec-expectations/pull/505#issuecomment-40676532

TODOs:
- [ ] add cuke
- [ ] cleanup negation_spec
- [ ] add proper docs
- [ ] general cleanup

@myronmarston @JonRowe /cc
I think I prefer `BuiltIn::Negated` (not `BuiltIn::Negation`).  As you've implemented this, `BuiltIn::Negated` isn't aliased.  You just happen to be using decorators to provide the alias by wrapping it, and passing the wrapped matcher in.  The `Negated` matcher itself is not involved in any aliasing, so calling it that is confusing.