Allow __call__ to be mocked

* This wasn't working anywhere, I'm not sure why but ppython takes call
 directly off of the class not the instance :(.
* Added a proxy method to proxy __call__back to the class if it has been
 mocked, otherwise we call the original method.
* Everything is restored at teardown.
fix issue with cleanup
add tests for expectations
move proxy logic to target
Merge pull request #36 from uber/tws-fix__call__

Allow __call__ to be mocked