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.
The number of bytes produced by struct.pack() depends on the format string, not the things you give it to pack. This corresponds to the L character in the format string above, which has a standard size (since we're using the < prefix) of 4 bytes.

In general, int and long in Python 2 are mostly interchangeable. Even an integer literal greater than `sys.maxint` will automatically become a long, with no need to put the L suffix there by hand. This is largely why the distinction was removed.