Fixes nested try/catch bytecode generation

The try/catch instruction generation has been reordered so that the following code has correct
semantics:

    function nested_try = {
      try {
        try {
          raise("a")
        } catch (ok) {
          return "ok"
        }
      } catch (failed) {
        return "failed"
      }
    }

It properly returns "ok" instead of "failed" which is what the previous implementation would yield.