chore(pubspec): Upgrade to DI 1.2.1
fix(directive): Support multiple directives with same selector.
chore(pubspec): Upgrade to DI 1.2.2
Revert "refactor(ng-repeat): refactor the fix for #1015"

This reverts commit f6187aeb68ac5e7506a387557b713494ef23c726.

This is only reverted because it is not yet in g3v1x.
chore(shadowless): remove noSuchMethod which improves dart2js size by about 100k
fix(benchmark): incorrect mirrors import
perf(cd): fewer string concatenations (10% improvement)
chore(di): Update the Module.bind(toFactory) to the new DI 2.0.0 format
chore(pubspec): Upgrade DI to 1.2.3.
feat(compiler): Backport DirectiveBinder API from #1178 to allow
gradual migration.

Originally authored by @yjbanov
chore: remove empty file
fix(directive): Support multiple directives with same selector.
fix(directive): Support multiple directives with same selector.
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)