Python 3.4 (backwards compatible)

All tests still execute correctly - one had to be modified a bit to support the unicode handling encoding changes in Python 3, plus several minor changes.
Let me know if there are any questions or if you're looking for clarification/improvements or want additional tests etc.