Improve README a bit.
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.
Update cukes to new syntax
Merge pull request #334 from benmoss/update_features_expect_syntax

Update cukes to new syntax