Dynamic typemap generation

Dynamically make class<->id maps.
Requires an initial BOOTSTRAP_CLASS list.
Requires a reflective call from Weaver to TypeMap.
Requires some small classes to be *outside* the TypeMap class.