transl: do not assume a catch's mode based on the last body form
It's not uncommon for user code to throw a symbol on failure, when
the last body form of a catch has a very different mode.
Even in other cases with, e.g., only numbers involved, it's been
trivial to get a lisp error due to an incorrect mode assumption:
(%i1) foo () := throw (1/2)$
(%i2) bar () := 1 + catch (foo (), 2)$
(%i3) translate (foo, bar)$
(%i4) bar ();
<lisp error>
No problems with the test suite, share test suite or rtest_translator.
New tests have been added to rtest_translator.