feat(testability): findBindings and findModels should descend into the ShadowDOM

Note that this won't work for you unless you have a chromedriver build
that works with the shadow DOM.
chore(pubspec): update pubspec.lock for examples
perf(WTF): extracted scopes to separate file, add documentation

Closes #1361
feat(routing): add support for dontLeaveOnParamChanges

Fixes #1252
Closes #1254
feat(ScopeAware): introduce ScopeAware abstract class

Components that implement the ScopeAware scope setter, will get scope
set during compilation.

Currently, there is little incentive to use this, because Scope can be
injected in the Components. However, after PR/1269 Scope would not be
injectable and this would be the only way for components to obtain
scope.

Introducing this API earlier allows for clients to start using it and
not break when PR/1269 lands.

Closes #1360
fix(http): always initialize final coalesceDuration

fix a warning
style(ng_tracing_scopes): remove blank line

This removes a diff with g3v1x.
chore(wtf): change constant expression used for AttachAware

This creates better information for WTF tracing.
test(angular_spec): remove duplicate symbol test

This was added twice: in commit 7c9a7585f265bcba88e05fa41f3b6a4698633460
and commit ddd9e4147c0c88a374345bf8b32df6cf57740ac4.
test(angular_spec): sort symbols and remove duplicates

We end up with duplicate entries (e.g.
angular.formatter_internal.FormatterModule) with a large unsorted list. 
Sort the list of symbols and remove duplicates.
Revert "perf(view): increase view instantiation speed 40%"

This reverts commit f20eab214e78346f9add602c6c39760c83f838e0 as it
breaks some applications.  We need to write test cases for the failures
and do one or both of: (1) fixup the PR 1358, (2) specify the breaking
changes so that applications can be upgraded.
Revert "fix(ElementBinderBuilder): throw if multiple transcluding directives per node"

This reverts commit 02a5079e2c42741a525094ac2350a2630a4c7a4a.

I'm reverting this temporarily to give folks some time to fix their
applications.  This commit unconditionally throws an exception without a
deprecation path.  Though incorrect, it turns out that for common cases,
using both ng-if and ng-repeat on the same directive would just work.
chore(travis): remove unused FF_TAR and CHROME_DEB
chore(travis): install dart before "npm install"

This simplifies a later commit which will allow us to bail out earlier.
chore(travis): fix failures for g3stable/g3v1x. bail early.

- bail early when we can.
- g3v1x requires a newer version of Dart than 1.5.8.  Quickly mark the
  job as successful if we're testing something that's descended from the
  g3v1x branch and we're attempting to use the SDK at this version.
- the g3stable jobs do not make sense if one is testing a branch
  descended from g3v1x.  Bail early with success for those jobs.
chore(travis): download the dart zips in parallel
chore(travis): skip tests for dart 1.5.8 and use_g3=yes or g3v1x
chore(pubspec): update lockfile
chore(pubspec): minimum route_hierarchical required is v0.4.22
test(compiler): Break the bind- tests into smaller tests