Various fixes including correct handling of non-unicode string input

*   Non-unicode input is now correctly treated as raw byte arrays and expected to be correctly escaped by the caller.
*   Refactored and expanded test cases to reflect the above and verify behaviour of all escaping and unescaping methods. This is still incomplete as the houdini libraries seem to have some inconsistencies with the expected behaviour as per https://github.com/vmg/houdini/issues/10 - or, alternatively, I'm not currently capable of fully understanding URL escaping.
*   Added PEP8 validation to Makefile for good measure.
*   Added neat little `dev-requirements.txt` file for easy development bootstrapping.