MicroIterable
A few more tests
chore(benchmark): Convert to DI bind syntax

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(cache): warnings

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(parser): Remove unused 'annotationsFor' method from FormatterMap

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(NgModel): Fix a typo

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(git): Add perf as a valid commit message type

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(keys): Make DI Keys final

This code was originally authored by @mhevery in the
DirectiveInjector change.
perf(various): Avoid putIfAbsent

This code was originally authored by @mhevery in the
DirectiveInjector change.
perf(element binder): Do not create tasklists when not needed

This code was originally authored by @mhevery in the
DirectiveInjector change.
fix(transcluding component): Perfer getByKey over get

This code was originally authored by @mhevery in the
DirectiveInjector change.
fix(NgModel): Read the view value in the flush phase

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore: remove noSuchMethod which improves dart2js size by about 100k
fix: incorrect mirrors import
perf: fewer string concatenations (10% improvement)
perf(View): Improve View instantiation speed and memory consumption.

View contains many injectors which are expensive in both speed and memory. The
New DirectiveInjector assumes that there are no more than 10 directives
per element and can be a lot more efficient than a array/hash lookup and
those it can be faster as well as smaller. This change makes View
instantiation speed 4x faster in Dartium VM.

BREAKING CHANGE:

- Injector no longer supports visibility
- The Directive:module instead of returning Module now takes
  DirectiveModule (which supports visibility)
- Application Injector and DirectiveInjector now have separate trees.
  (The root if DirectiveInjector is ApplicationInjector)
perf(micro-map): use micromap for caches and context objects.
feat(micromap): make micromap support null keys.

Null keys are acceptable for HashMap, so MicroMap needs to keep that
feature.

Also now it stays in delegate mode once it has been switched.