Cache compilation result.

The result of execute, eval and new function compilations are now cached per JintEngine instance. It is not possible to cache them over instances, because the dynamic assembly is associated with the JintEngine so it can be collected, and because we include ID's for identifiers in the compilation, which aren't transferable between JintEngine instances.

Bug: #25