Add call count specific expectations.

* Add expect(Foo).method_name.never()
* Add expect(Foo).method_name.once()
* Add expect(Foo).method_name.exactly_times(n)
* Update is_satisfied() to check call counts, will raise expectation
  error if the call count does not match the expected value.
* This doesn't raise when the unexpected call is made it waits until is_verified() is call.  This is probably undesirable, it is an easy update to raise when an 'illegal' call is made. 
We may want to raise here if self._call_count > self._expected_call_count. That has the benefit of:
* Cutting the test short as early as possible.
* Not requiring us to modify self.is_satisfied()