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.
It could be abstracted - I would call the function `null_terminated_utf16_string` - but there's no appreciable space saving, and it hides what's actually happening behind another level of indirection. I will do that if you insist, but I think it would make the code less readable.