Turns out the headers are necessary after all...

Signed-off-by: Atheriel <atheriel@gmail.com>
Abstracted string conversion in preparation for Python 3 compatibility and cleaned up various aspects of the API, etc.

Signed-off-by: Atheriel <atheriel@gmail.com>