Store runtime types and intrinsics

Don't use runtime lookup/cache for intrinsics,
it's wasteful. We just lookup at the beginning,
always. If it's unnecessary, we can always do
a load on the first use, but keep the static
allocation.

Also some general cleanup: renamed LLVMTypeMap
to llvmTypeMap, removed FunctionCache.
pkg/runtime: fix runtime.makeslice