Allow `Mock` to be called with a given class as the arguments

Useful if the mock is concerned that the arguments must be of a certain
class, but doesn't care about what it actually is
Refactor: remove forcing the `Mock`'s arguments to an array
Spelin is great
Return what arguments were expected with the exception's message
`Mock#times` returns itself

So the mock expectation can be chained however the user likes
Add pry
Style consistency
Refactor: enhance readability
Setup mock with expected method in setup
Clarify test
Overwrite previous expectations in `Mock#expect`
Return the expected_calls for a Mock
`assert_received` calculates the result in before_teardown