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(cd): Add a toString() method

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.
feat(animate): animationsAllowed property to turn off all animations

This is required for writing end-to-end tests against AngularDart apps
that use animations.  In such tests, you typically want to test the
functionality of the application and not necessarily deal with the
animations.  This allows you to turn off all animations in your
production site under test.

The Animate class has a new property, animationsAllowed, which can be
set to false to disable all animations.  When true (the default),
whether or not animations occur depend on the animation module installed
and the AnimationOptimizer.
feat(testability): implement the testability for ProtractorDart

See https://pub.dartlang.org/packages/protractor
fix(introspection): work around http://dartbug.com/17752
test(e2e): add end-to-end tests using ProtractorDart

https://pub.dartlang.org/packages/protractor
chore(scripts): fix detection of DART_SDK/DART/DARTIUM

Sets the stage to get rid of obsolete DARTSDK.
chore(pubspec): require newer protractor to support dart 1.6.0-dev.0.0
test(introspection): work around issue 1219

Ref: #1219
chore(e2e): disable slow tests

- Increase timeout for tests.
- Disable 2 slow tests that typically time out on Travis with Sauce.
chore(pubspec): Upgrade to DI 1.2.1