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: 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)