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.
feat(benchmark): add ability to adjust sample quantity

Move creation of HTML elements into tree.html where possible.

Improve styling with bootstrap lib plus basic structuring of content.
feat(benchmark): record gc time for each test run
perf(ChangeDetector): lazy initialize DuplicateMap

This slightly reduces number of Maps in the system.
perf(ChangeDetector): create _EvalWatchRecord#namedArgs lazily

This change reduces the number of Maps in the heap on binding heavy views by 30%.
perf: use HashMaps instead of LinkedHashMaps where possible
feat(benchmark): change samples input type from range to text
feat(benchmark): improve sampling UI

 * Increase default sample from 10 to 20
 * Convert sample adjuster from range to input
 * Make sample list scrollable after 250px height
chore(benchmark): add underscorejs lib
feat(benchmark): add ability to profile memory usage per iteration
chore(benchmark): reduce code duplication with updateTimes()
chore(travis.yml): enable g3v1x, disable g3v1x-master
fix(scope): remove deprecation warning for scope.watch with context

This was added in e8a5ce734b00fd22f700e2fc1be5507dda195638.
We will be looking into this some more.
feat(Scope): Instrument Scope to use User tags in Dart Obervatory
WIP: initial cut of NodeInjector