chore(perf): Get watch_group_perf running on Dart2js

DARTIUM:
========
fieldRead: => 58,240 ops/sec (17 us) stdev(0.0028)
fieldReadGetter: => 1,480,972 ops/sec (1 us) stdev(0.08649)
mapRead: => 1,720,752 ops/sec (1 us) stdev(0.05972)
obj.method?(): => 93,362 ops/sec (11 us) stdev(0.00549)
obj.method?(obj): => 79,881 ops/sec (13 us) stdev(0.00301)
add?(a, a): => 1,342,560 ops/sec (1 us) stdev(0.10907)

change-detect List[1000](RunTime): 61.251990689697415 us.

DART2JS:
========
fieldRead: => 372,422 ops/sec (3 us) stdev(0.0109)
fieldReadGetter: => 1,038,660 ops/sec (1 us) stdev(0.19283)
mapRead: => 721,103 ops/sec (1 us) stdev(0.04434)
obj.method?(): => 172,910 ops/sec (6 us) stdev(0.00801)
obj.method?(obj): => 161,329 ops/sec (6 us) stdev(0.00598)
add?(a, a): => 2,432,982 ops/sec (0 us) stdev(0.17624)

change-detect List[1000](RunTime): 145.12734924896597 us.
feat(scope2): Basic implementation of Scope v2
feat(Scope): Brand new scope implementation which takes advantage of the new change detection
fix(change detection): Fix for comparing string by value
refactor: minor code cleanup / fixes
chore(scope): remove watchSet API
feat(scope): Allow expressions on non-scope context
chore(demo): update to work with new scope
feat(animation): Animation lib and demo.
doc(animate): Variable naming in animation_runner.
feat(animation): ng-repeat basic implementation of add & remove.