Prepare for py3k

Make a start toward #91 (we are still blocked on the `protobuf` dependency).

Selectively apply patches suggested by 'python-modernize --six-unicode'.

Tweak the pylint messages suppressed in test/demo code to work around issues involved in "straddling" Python2/Python3:
- The `six` module does some import hackery which confuses pylint when used in a virtualenv:  suppress `import-error` check (only in test/demo code).  Note that the check is redundant (we have 100% coverage) as well as failing bogusly.
- Rather than introduce `from __future__ import print_statement` in demos, just use `print()`, which is legal in Python2, and forward-compatible to Python3, but causes a `superfluous-parens' warning under pylint:  suppress that warning (only test/demo code).
Is this change related to Py3k? Also wouldn't something like `RuntimeError`, `SystemError`, or `StandardError` be preferred?