FEATURE: Added support for a "retry;" statement that can be used within catch blocks.

The retry statement will cause any cleanup to be done and the running
error handler to be restored. Supporting this required a very positive
change to the semantics - which is the restriction of catch and finally
clauses to block scopes created by if/else/switch/while/for. This way,
finally calls don't accumulate through long running loops, resulting in
resource leaks.