perf(view cache): Avoid http.get

This change makes templateUrl component creation 100% faster.

It is a stop-gap until #1107 is fixed.

Closes #1108
feat(element binder): Use a child scope instead of Scope.watch(context:o)

This is the only place where Scope.watch(context:o) is used and it is
in the way of optimizations.

For #1086
feat(scope): Deprecate Scope.watch's context parameter.

Scope.watch should no longer switch context.  Instead of saying

    scope.watch(expression, (v, _) { }, context: o);

Create a new isolate child scope

    scope.createChild(o).watch(expression, (v, _) { });
refactor(Scope): Pull ASTParser out of Scope into it's own library

For #1086
chore(ASTParser): Clean up and refactor the ASTParser

-> Make it injectable
-> Remove try/catch statements are extra state
-> Rename AstParser -> ASTParser
-> Rename ExpressionVisitor -> _ExpressionVisitor

For #1086
feat(scope): Expose Scope.watchAST as a public API

For #1086
feat(compiler): Precompute Scope.watch AST for TextMustache

For #1086
feat(compiler): Pre-compile Scope.watch ASTs for attribute mustaches

For #1086
Closes #1088
chore(pubspec): Upgrade DI to 1.0.0
test[ng-repeat]: add test for ng-repeat subject not being an iterable
perf(compiler): An option to disable the ElementProbe.

Closes #1118
Closes #1131
fix(dccd): fix false positive for collection moves

Closes #1105
feat(benchmark): add automatic gc before each test

Also included is a script to launch Chrome Canary with the appropriate flag to
enable manual garbage collection.

Closes #1133
docs(developer): fix typo in developer.md

Changed instance of "xhange" to "change"
perf(compiler): +6% Pre-compute ViewFactories, styles for components.

This sped up the TreeComponent benchmark by 6%.

Closes #1134
benchmark(TreeComponent): Update for watchAST and disable ElementProbe.
test(benchmark): add test runner and stubs for bp.js

This commit adds a karma setup with a spec file for bp.js, and
has refactored bp.js to expose all functions on a global "bp" object.

Behavior of functions hasn't changed, other than to remove some
duplication of code regarding adding buttons to the DOM.
test(benchmark): add ability to run 25 iterations of test, sampling only the last 20

This commit also breaks the functionality into smaller, more testable functions,
and adds some basic tests for the benchmarking too.
feat(Scope): Use VmTurnZone.onScheduleMicrotask in Scope

BREAKING CHANGE:

Previously a micro task registered in flush phase would cause a new
digest cycle after the current digest cycle. The new behavior
will cause an error.

Closes #984
fix(scope): Use runAsync for microtasks in digest.

BREAKING CHANGE:

Microtasks scheduled in flush will process in current cycle, but they 
are not allowed to do model changes.

Microtasks scheduled in digest will be executed in digest, counting
towards the ScopeDigestTTL.