Check that the local frame is setup correctly prior to attempting to execute
compiled code that assumes a specific frame layout.
Make the FrameDescriptor a garbage collected object.

Previously it was being automatically deleted when the CompiledExpression
that used it was deleted.  That was incorrect, as frames that use the
descriptor may outlive the CompiledExpression.
Temporarily use the default LLVM optimization level for JIT compilation.

For currently unknown reasons, this seems to affect the stack unwinding
information needed to handle exceptions in some circumstances.