feat(ngModel): support the input[type="search"] field

Closes #466
fix(routing): correctly scope routing to ng-app

Fixed #494
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