Factor out block unwinding code
factor our block popping
Unwind except handler, if we have one

Note that except handler is different than setup-except
This code is Py2 specific

This is the equivalent of fast_block_end in ceval.c, and it works pretty differently in python 3.
Implement py3 block unwinding

This is the equivalent of fast_block_end in ceval.c
The except-handler block doesn't have a block handler

In ceval.c, except-handler is pushed onto the block stack with a handler of -1.  I think this -1 is a C-ism for False/None/not applicable.  We'll never jump to the handler of an except-handler block; except-handler is always unwound by the unwind_except_handler method.

Except-handler is a weird beast, an "implicit block" that doesn't map to any opcode.  (It has a byte value of 257!) See [this thread](https://mail.python.org/pipermail/python-3000/2008-May/013740.html) for an explanation of what's going on here.  As far as I can tell, Antoine's patch was implemented just as he describes in his initial email.
Rename except to setup-except

This is to be more explicit that in Py3, there's both "setup-except" and "except-handler".
Implement WITH_CLEANUP in Python 3.
Implement END_FINALLY for Py3

In python 3, END_FINALLY is responsible for a little more work.  If a context manager should suppress an error, WITH_CLEANUP doesn't pop the exception off the stack.  Instead, it pushes a new 'why' code, WHY_SILENCED, onto the stack, and leaves the popping to END_FINALLY.

Context managers always end with an END_FINALLY in py3, even though they don't start with a SETUP_FINALLY.  Context managers in py2 don't end with END_FINALLY, so this code won't be executed with context managers in py2.
SETUP_WITH creates a 'finally' block in py3

The only difference in py2 between a 'setup-with' and a 'finally' block is that the 'setup-with' block normalizes an exception.  We can probably consolidate this to eliminate the setup-with in py2.
Prepare to write py3 RAISE_VARARGS

RAISE_VARARGS is really different across versions.  We won't try to integrate them into one function.
Implement RAISE_VARARGS for python3.

do_raise could probably be cleaned up a bit and maybe reused in the py2 RAISE_VARARGS.
Implement new test of exception causes for PY3
Merge pull request #6 from akaptur/python3

Python3