Give a better error message with .at_least(3).times style expectations

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
minor optimization: each_value instead of values.each
Isolate original_method_from_ancestry
Handle Ruby 2.1 with full ancestry
Merge pull request #257 from marcandre/ruby_21

Ruby 2.1 compatibility
BasicObject defines #__id__ but not #object_id.

Thus, we need to use #__id__ as the object id.
object_id => __id__

I forgot to change it here.
On 1.9.2, BasicObject does not define __id__.

This was added in 1.9.3:

http://bugs.ruby-lang.org/projects/rurema/repository/revisions/5085

So, in order to support mocking or stubbing a BasicObject-based proxy
in 1.9.2, we need some special handling.
Merge pull request #259 from rspec/fix_proxy_for_basic_object

BasicObject defines #__id__ but not #object_id.
Make the specs pass

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Break up a monster line in the mocks error generator

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Add a changelog entry for the new received expectation message

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Fix a cuke related to the new at_least at_most output

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Make at_least and at_most expect messages instead of classes.

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Remove some better messages todos

Signed-off-by: Sam Phippen <samphippen@googlemail.com>
Remove throw arguments ambiguity

When running the specs for another project with the -w flag, I was
receiving the following warning:

rspec/mocks/message_expectation.rb:145: warning: `*' interpreted as argument prefix

This patch adds parentheses to remove the ambiguity of *.
Marshal.dump operates correctly even when space has yet to be initialized
Merge pull request #262 from rspec/marshal_dump

Marshal.dump operates correctly even when space has yet to be initialized
Merge pull request #255 from samphippen/better-at-least-expected-message

Give a better error message with .at_least(3).times style expectations
Make specs less brittle.

`expect { }.not_to raise_error(ErrorClass)` is brittle because
the expectation passes if the block raises any other kind of error,
which could silence other expectation failures or fat-fingered
method names.