Major (breaking) refactor for general compatibility and updated docs. 

I did a lot of things in this set of commits:

* Refactored handshaker to not require the use of requests_oauthlib
* Extended the API to include stateless functions
* Improved error handling and removed plain asserts
* Updated demo.py and README.rst to reflect new "hackshaker" pattern

Demo was shown to function as expected in python 2.7 and 3.4.0.