Py3 compatibility as proposed in issue #17

I've done 3 verifications with this branch:
 1. run it in app
 1. call `python2.7 utils.py`
 1. call `2to3` on the module's root dir

So far my app sends messages to the service. Also the altered file loaded with a current py2 interpreter which should be a sufficient integration test for this particular change.

Edit: In my previous tests I didn't raise any exceptions which is why I ignored most of `2to3` recommendations. See the individual commit messages for details.

Regarding the revert of ef6dd58 and its re-commit: This is my 2nd git pull-request ever. So many new concepts... sorry for the clutter.