Move logic to protect the argument to asLogicalNoNA from the caller to the
asLogicalNoNA call itself, following changes made to CR.
Gracefully recover, falling back to the interpreter, if JIT compilation fails.
Add exception class for JIT compilation errors.
Gracefully handle any dead code emitted in unreachable locations (such as
following 'return', 'error', 'break', 'next' etc.) by creating a new basic block
for the compiler to emit the dead code into if the current one has already been
terminated.
Add options to assume that control flow operators and assignments have their
normal semantics, and use that to generate code with much simpler flow control.

Refuses to JIT compile code if that assumption can't be made.
Make use of the LLVM jit optional, controlled by the '--enable-llvm-jit'
argument to configure.  Currently the default is to disable the jit.