Turn the processing of non-local returns into a Truffle node.

I hope this is semantically correct...
Now, only methods that define blocks with non-local returns will actually catch those ReturnExceptions. This should be ok, because a block checks whether the relevant method is still on the stack, and thus, there is one well defined point that should catch the exception, and that one is still maintained.

This is one of these examples, where Truffle trees are more than just ASTs. They are rather execution trees that model 'execution traces'. My feeling is now that any kind of complex control flow should be modeled as nodes. This way, the runtime actually only sees more or less straight forward control flow, because everything else is hidden by alternative nodes or in low-priority branches (BranchProfile).
[TODO-REPORT: write down a bit more on the intuition for creating truffle nodes]

Signed-off-by: Stefan Marr <git@stefan-marr.de>