Python 3 support

There's still some test failures (in both Python 2 and 3) which I've outlined in `test-failures.txt`. Basically four things need to be decided:

1. Whether or not to drop Python 2.6 support since ReportLab 3 only supports down to 2.7.
2. Try and figure out what is causing the keepinframe test to fail. This is a long standing bug so not that urgent to fix.
3. Fix the PyPDF2 related failures in Python 3.
4. What to do about a ReportLab 3 font loading bug in Python 3.

More info in `test-failures.txt`. I will also add some comments.
This line (which is for font face names) seems to be the only thing affected by making `String` unicode instead of bytes based.

ReportLab 3 font loading is weird since it wants face names as bytes, but file paths as unicode.

This is closely related to the ReportLab bug that causes `tag-registerTTFont.rml` to fail.