Don't override let definitions with argument matchers

see https://github.com/rspec/rspec-mocks/issues/102

ArgumentMatchers (together with ExampleMethods) were
included into the ExampleGroup instance's metaclass.
This caused argument matcher methods such as boolean()
or hash_containing() to override let definitions with
the same name.

This commit fixes this bug by including
ArgumentMatchers into the example group's class and
not into the metaclass.

Conflicts:
	Changelog.md
	lib/rspec/mocks.rb
	spec/rspec/mocks/mock_spec.rb

(This commit originated in rspec/rspec-mocks#238. At this point,
the rest of the changes in that aren't valid or needed, and the
broken behavior these specs documented has been fixed upstream
in rspec-core by rspec/rspec-core#1188)
Simplify spec a bit.

We don't need to exhaustively test every argument
matchers method; one will do.
Remove unnecessary module inclusion.

As of rspec/rspec-core#1188, rspec-core now takes
care of including the ExampleMethods module.
This should be faster (including once, rather than
once-per-example) and fixes #102.
Prefer `def self.` for defining class methods.

Using the singleton method syntax is problematic
as further down in the file it's not clear that
you are in the singleton class context. `def self.`
makes it very clear you are defining class methods.
No need to re-setup space in each example.

Setting it up once at load time is sufficient.
This should be faster (doing no per-example setup
is faster than doing some per-example setup).
Document the methods defined in RSpec::Mocks.
Update cukes to demo how to use rspec-mocks outside rspec-core.
Add changelog entries.
Merge pull request #471 from rspec/fix-102

Stop including `RSpec::Mocks::ExampleMethods` in the singleton class of the example