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(WatchGroup): Allow measuring cost of running reaction functions and
reporting it.

To be able to measure cost of reaction fn one needs to define
ReactionFnStats and ReactionFnStatsEmitter. ReactionFnStats takes one
parameter and that is the number of most expensive functions to record.

One can define ReactionFnStats and ReactionFnStatsEmitter like:
m..bind(ReactionFnStats, toFactory: (i) =>
    new ReactionFnStats(15,i.get(ReactionFnStatsEmitter)))
  ..bind(ReactionFnStatsEmitter);

To report the most expensive functions, open the console and type
ngReactionFunctionStats().emit(). This will output n most expensive
functions with their corresponding expressions in a table like format.
chore: Add reaction function tracing to todo demo.
Fix
Fix
Rename
Trace change detection
Fix tests
More refactorings
More refactorings
some cleanup