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.
Make matcher public

Not ready yet, needs some tests of the decorator function and needs some
more thought as to how to what exactly to be public.