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.
Because it is what the code was already doing by an awkward method. The existing code interpolated a 0-byte between every character, with three trailing zero bytes after the y. This is just a clumsy method of creating UTF-16 data, which is how Windows applications handle unicode.

This one I am confident in. The other case above was storing text in some undefined single byte encoding, so cp1252 is an obvious guess (that's the Windows default for Western European languages). Here, it is clearly creating UTF-16 little endian. All I did was change the implementation to the obvious way of doing that.