Allow mock expectations to be satisfied with #send

Expectations set on Minitest::Mock cannot be satisfied with #send or #public_send

If your application is calling a method via `#send` or `#public_send` it may not be desirable for your tests to mirror this implementation detail.

You may want just set an expectation for `#foo` and then `object.public_send(:foo)` allowing you to change the implementation of how `#foo` is called without changing the tests.

The implementation also has the advantage that inherited methods (from Object) that are not removed can also have expectations set on them, they of course behave normally otherwise.

This also solves the issue raised in #302 which enables expectations on `#===`.