Fix CATCH/quit interaction with TRY (cc#851)

As reported in [CC#851](http://issue.cc/r3/851), currently, a `catch/quit` incorrectly disables other (outer) error handlers, such as `try` or `attempt`.

The underlying cause is the `catch/quit` implementation incorrectly overwriting the error handler stack. See the commit message for more details on the fix.

This fixes [CureCode issue #851](http://issue.cc/r3/851).