Prefer curlies to do-end for `expect { }.to raise_error`.

`do` and `end`, as English words, read funny in the middle
of the expectation expression.
Refactor matcher_spec.

- Use a helper method to create the matchers, rather than
  `Matcher.new` + `for_expected`. I plan to rewrite the
  implementation of `Matcher` in a way that will require it
  to be instantiated differently and I having this helper
  method gives us only one place to update.
- Prefer `let` to `before(:each)` ivars.
- Define the module inline as a local; this avoids the need
  for the awkward `m = mod`.
Address a few under specifications of custom matchers.

This will help with my upcoming refactoring.
Use `include` instead of `extend`.

In RSpec 3 the body of `define` will be a
class definition and the body of `match` (etc)
will be a method def, so using `extend` to make
a method available to the `match` block will
not work.
Add pending specs for things that should work after matcher refactoring.
Rewrite custom matcher DSL.

Rather than evaling the `define` block in the
context of the matcher instance, eval the `define`
block in the context of the matcher instance's
singleton class.

* Fixes https://github.com/rspec/rspec-expectations/pull/272.
  `include` in `define` has a different meaning (module inclusion)
  than `include` in the `match` block (using the `include` matcher to
  match).
* Better solution than https://github.com/rspec/rspec-expectations/pull/194
  for https://github.com/rspec/rspec-expectations/issues/188. There's now
  a `match` class method and a `match` instance method.
* Completely avoids issues we had to use hacks to solve before:
  https://github.com/rspec/rspec-expectations/pull/29,
  https://github.com/rspec/rspec-expectations/pull/38,
  https://github.com/rspec/rspec-expectations/commit/fc4b66dc16b0394ca9d6f63a93296b035052c485
Ensure helper methods can be accessed from the macro blocks.
Use singleton classes rather than dup'ing the matcher class.
Assign the matcher subclass to a human readable const.

This helps provides useful `#inspect` output.
Compile the user's block directly to a method.

- This makes the "this macro method defines a
  method" abstraction less leaky.
- It allows constructs like an early `return`
  to be used from within the block.
- It puts all user refs into a common module.
Allow `chain` blocks to accept blocks.
Use `respond_to_missing?` on 1.9+.
Improve docs.
Make matcher constant assignment more robust.

JRuby and Rubinius apparently don't handle
non-ascii in const names.
`for_expected` doesn't really serve a purpose here.
Add changelog for recent custom matcher changes.

[ci skip]
Remove misleading docs.

They claim you can't use `match` matcher within` match` block,
but this now works.
No need for the ellipses.
We're trying to get away from run-time extensions.

Actually, it probably doesn't matter much here,
since we are doing other things there that
are likely to blow away the method cache, but
we might as well avoid one more runtime extension.
Add explanatory comment.