Tests and bugfixes

I made a few updates to the library after including it in a side project. I added unit testing to cover most of the library. A lot of the library had a php naming scheme; also I updated and refactored a majority of the code to be more pythonic.

Notable bugfixes:
* db943a5 Fixed a mutable default argument potentially causing critical errors.
* d836117 Fixed some shadowed built-ins.
* 430a051 Version depending, python's default json library may convert some string data to unicode-keyed dicts depending on the supplied input. The hash method may always mismatch depending on the environment. Added in a dict-sanitizing function to prevent this from happening.

I tested under Python 2.7.6, however the library is **not** python3 compatible.