use unicode literals and update tests
add support for Python 3.3 and PyPy