Allow querying if a mock was called.

Firstly privatize everything on the existing matcher object as it is now
going to be a public interface.

Add called and call_count parameters for querying how many times that
particular mock was invoked. We do this by saving a reference to every
request that passes through. This is inefficient for now, however it
lets us do more interesting things like called_with in the future.
Standardize request history tracking

Make a base class so that the adapter and the matcher both do request
history tracking in the same way and they both provide the same
interface.