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. 
The chaining here is a good opportunity to test that `time` is an alias for `times`.