Port to Python 3.0

This makes three changes:

  * Uses Python 3's `print` syntax (backwards compatible).
  * Uses Python 3's exception handling syntax (backwards compatible to 2.7).
  * Splits argument tuples manually.
  * Does version checks when importing StringIO pickle, and configparser.

The result should work under Python 2.7 and Python 3+, but the examples seem to be missing things, so it's hard to test.