Making mocking callable objects easier

* Fixes #39
* Variables that point to callables can be mocked
* Variables that point to class methods can be mocked
* Variables that point to instance methods can be mocked
* Decorated functions that return callables can be mocked
* Decorated Functions can be mocked
Merge pull request #48 from uber/tws-fix-top-level-callable

Making mocking callable objects easier
use str(e.value) instead of e.value.message
support python functional changes
update
fix __new__ bug in python 3
update .travis.yml
clarify _restore__new__
Update partial_double_test

* Ensure that values passed into constructor our passed into __init__
wrap original __call__
fix merge issues