Handle different type repr in < 3.2.
Handle absence of __context__ and __cause__ on < 3.x
Handle missing __traceback__ in tests for < 3.x
Python2.xify the code base.

Skip a few tests that test the core interpreter and don't work on <3.
Unicodify the core.
Fix tests to deal with Python 2's behaviour (stdout not encoded at
all) when stdout is a pipe.
Fixes for the test suite on PyPy.

PyPy includes app_main in its tracebacks. For now, remove that in test
(but in future perhaps we should remove that in formatting code)?

PyPy also has a different position in its parser for errors, so allow
for that in tests.