Python 3

An update to add support for Python 3, consisting mostly of
* Unicode literals
* BytesIO
* Ensuring the encoding when dealing with incoming data (defaulting to UTF-8)

Also a couple of tweaks to get the tests working with Python 3, and behaving consistently.
This is the first case of a camelCase variable. I think all else there's just pep8_style. Would you mind changing it for the sake of consistency?