perf(injector): +29%. Use an array for type lookup instead of a map.

The array is much faster, but we are trading memory for speed:
  Each injector will create a O(# of registered types) sized array.
  This is probably the right decision, but we should watch large
  apps.

This speeds up directive creation in AngularDart by 29%
chore(cleanup): minor post-optimization cleanup
perf(injector): skip _checkKeyConditions in dart2js