Sketch implementation of ordered with counts

Questions:

1. What should we do with at_least, at_most and ordered?
2. In receive_spec.rb:325 I've done the calls after the fact. The spec correctly fails and catches the exception but then the RSpec mocks teardown raises the next exception. We could replace this with a manual call to RSpec::Mocks.space.reset_all or possibly a temporary scope. What's best?
3. Is this even a good way to solve the problem, shoving more things in to the order group doesn't feel like a great solution to me?


This `unless` isn't necessary because `additional_expected_calls` will be 0 if it's a `:stub`.

Also, seeing this makes me think that we should perhaps use polymorphism and have separate `message_expectation` classes for a true expectation vs a stub (which could be called `MessageAllowance` or something) that can take care of the behavioral differences without needing conditionals like this. Thoughts?  That could always be a future refactoring, of course.