Python 3 support

Following discussion on PR #32, this adds Python 3 support without any external dependencies. Python 2.6 and above and Python 3.3 and above should work; older versions will not.

The tests are passing on Python 2 and 3; I haven't tried the examples.
Same question as above. The encoding used should be abstracted to a module-level constant, or in a shared module if it's used in multiple modules. Keen to understand why particular encodings are used, and why they differ in different parts of the code...