Explicit exception chaining

This adds support for explicit exception chaining, i.e.
`raise FooError from BarError`
which, in PY3, generates a nice verbose traceback.  See [PEP 3134](http://legacy.python.org/dev/peps/pep-3134/) for details.

This required pulling the Py3-only tests into their own file, since raise from throws a (Python) syntax error in 2.x.

I've also cleaned up the raise/throw tests to raise Exceptions or names instead of integers. (Raising an integer will raise an exception, but not the one you want).

The addition to checkargs is slightly gross, so I'm interested in suggestions for cleaning that up.  I'm also interested in feedback on whether I should be enforcing syntax more aggressively in the raise method.