Optim: avoid creating so many strings when quoting qualified names
Optim TypeParser: avoid creating useless lists,intersections,unions
Optim: lazy model: no loading for getQualifiedName
Optim: LazyPackage: do not copy the declarations all the time and use array to traverse it index-based faster

Really saves about 1.7G of allocations on the SDK
Optim: AbstractTransformer.makeJavaType: save on ArrayList allocation for toplevel types
ClassTransformer: fix bug due to recent-ish refactoring of metamodel package
Optim: iterating array lists via c-for is cheaper memory-wise than iterator
Optim: model loader: cheaper cache key by module computation using module signature
Optim: model loader: we don't need to load the language module eagerly if we load the impl language package lazily
Optim: model loader: pass along the supertype cache to new modules
Optim: model loader: save time on processing type parameters
Optim: LazyPackage: cache declarations by name
Optim: memoise the ClassMirror cache key and split model loader declaration cache in two caches
Optim: added commented-out waits for profiling
Optim: fixed needsJavaKeywordsQuoting
Optim: implemented ReflectionClass.getCacheKey
Model loader: do not use typeFactory subtyping during model loading

Since Tuple/Sequential/Callable may not be available yet
lazy model: no loading for visible scope
FIXME: added fixmes
Updated test .src now that annotation targets are properly generated