Added Python3 support. Now Python 2 or 3 can be used with the same code

The code is runnable with Python3 and Python2 now. Tested with Python 2.7 and Python 3.3.
Please write code in the future for Python 2 and 3, so both are supported
I still think this is likely rather a bug on a higher level, so maybe add a # TODO comment about this here.

data should be always binary data (str for py2, bytes for py3) and never and never need encoding (because it is unicode text).