Implemented JIT rollback when exceptions are thrown during Psi -> TVM lowering.

Probably doesn't work entirely correctly, but it passes the interpreter test.
Initial Linux/ARM and Android ports.

The Android port can load shared object but doesn't do anything yet. In
the ARM port one test fails; I don't know if this failure is a bug in my
code or a problem with QEMU which I'm using for testing.
Android TVM testing appears to be written correctly, but fails.

The test program ends up in an infinite loop, which appears to be
cause by LLVM failing to switch the permissions for the generated
code from RW to RX permissions. For some reason, this gives an
infinite loop rather than a segfault (Dalvik signal handlers?).

I've tested this on a real Galaxy Nexus, which gives the same
behaviour as the emulator.