chore(release): release v0.9.8
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
fix(scope): allow sending emit/broadcast when no on()
feat(zone): Allow escaping of auto-digest mechanism. 

Closes #557
chore(style): code cleanup
fix(balls): ball number can not go below 0
refactor(collection items): Collection items indexes are int
test(change detector): re-add a previously failing test
docs(Scope): adding documentation
chore(scope): clean up style / remove $
refactor(NgAttachAware): wait until all bindings fire.

This changes the behavior in that it will wait for one time
bindings to resolve before calling attach();
feat(scope): Experimental: Watch once, watch not null expressions

This is an experimental feature, and may not get into v1.0. Depend
on with caution.
fix(scope): improve error msg on unstable model