Update base matcher to better leverage `description`.

Include it in `failure_message` and
`failure_message_when_negated` so the matchers
don't have to override all 3 if they are just
customization the description part of it.
Refactor `include` matcher a bit: pass around fewer args.

We can leverage the instance state of the matcher
object.
Improve hash formatting used in `include` matcher.

{:a => 1, :b => 2}

...reads much better than:

{:a=>1, :b=>2}
Rename spec file.
Refactor to use the new FuzzyMatcher from rspec-support.
Make `change` composable with other matchers.
Make `include` matcher fully composable.