Py3 exceptions and with

- Fixes the failing Python 3 exception handling tests.  
- Adds new functionality implementing py3's `raise FooError from BarError`.
- Fixes failing Python 3 context manager tests

Code review would be welcome.