Make nose integration a bit safer

* Check for current_space before tear_down()
* Check for current_space before verify()
Merge pull request #17 from uber/tws-update-nose

Make nose integration a bit safer
Add call count specific expectations.

* Add expect(Foo).method_name.never()
* Add expect(Foo).method_name.once()
* Update is_satisfied() to check call counts, will raise expectation
  error if the call count does not match the expected value.
Refactor how we handle call_count limits

* Raise right away
* Move to allowance so you can limit the number of times an allowance is
  called
* Add new allowance tests
Fix merge errors
Update call_count syntax

* Duplicate rspecs exactly(n).times
update tests
implement at_least and at_most
Refactor allowance.py -- better handle call counts

* Create call_count_accumulator: contains all call counting logic
* Remove call count logic/state from allowance.
add docstrings to call_count_accumulator
add docstrings to allowance.py
Let allowance.py build the error string
Raise TypeError if (exactly|at_most|at_least) are called with a negative value