run time versions of pointerref and pointerset

this allows generically compiling more code, so run time specialization is
needed in far fewer cases.
WIP code to generically compile all definitions statically.

in "no jit" mode the method cache uses linfo->unspecialized for all needed
entries. static parameters are provided via a closure environment.

codegen changes to move some errors to run time to tolerate weaker
type information.
add --compile={yes|no|all} option
yes - default
no - turn JIT off
all - when building system image, compile exhaustively
an image built with compile=all can run with compile=no

make constructors work with static compilation, again
passing static parameters through closure environments

move ctor_factory to TypeName, since there is only one
per family of types anyway.
handle approximate types better in ccall

expm() now works when statically compiled, among other things