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}
Refactor start_with and end_with matchers.

- Leverage instance variable state.
- Leverage the description/failure messages
  provided by BaseMatcher.
- Remove ternaries.
Remove old rcov artifacts.
Rename spec file.
Refactor to use the new FuzzyMatcher from rspec-support.
Make `change` composable with other matchers.
Make `include` matcher fully composable.
Make `raise_error` matcher fully composable.
Make `match_array` fully composable.
Make `start_with` and `end_with` fully composable.
Make `throw_symbol` fully composable.
Make `yield_with_args` fully compose with other matchers.
Make `yield_successive_args` matcher composable with other matchers.
Provide a default description override for alias matchers.
Setup infrastructure to specify matcher aliases.
Add some more matcher aliases.
Add aliases for `be_xyz` predicate matchers.
Add aliases for `be operator value`.