More complete implementation of try/except

This significantly improves the implementation of try/except:

1) You can now have try/except blocks within functions.
2) You can have except blocks for specific exception types.
3) You can name the exception object so you can refer to it in the except clause
4) You can re-raise the exception in an except clause

This fixes #85, among other things.

The "finally" clause is still not implemented.