chore(travis): use saucelabs for chrome and firefox tests
chore(travis): fixed tunnel used by Karma on Saucelabs
perf(view factory): 14% Precompute linking information for nodes

The Default TreeComponent benchmark dropped from 572ms to 501ms

Closes #1194
Closes #1196
perf: use HashMaps instead of LinkedHashMaps where possible

Conflicts:
	lib/core/interpolate.dart
	lib/core/parser/static_parser.dart
	lib/core/scope.dart
chore(travis): increase max-duration to address sauce timeout on FF test
chore(docs): remove rm for old doc files. automating this is a bad idea.
fix(parser): ensure only one instance of dynamic parser
chore(npm): Pin jasmine-reporters version (2.0.0 breaks us)
fix(cache): Make UnboundedCache extend Cache

Closes #1174
docs(developer): fix developer docs listing incorrect scripts to run for testing

DEVELOPER.md previously directed developers to run scrips/env.sh before running
tests, which is unnecessary and will cause their terminal to exit whenever
a command ends with a non-0 exit code.

Closes #1187
Closes #1188
docs(developer): fix typo in DEVELOPER.md

Closes #1210
fix(examples): do not use shadow DOM

This is in preparation for implementing the Testability API and Protractor
end-to-end tests since chromedriver can't handle shadowDom references.
fix(karma): remove saucelabs from default browser list.
doc(dccd): Improve the API doc
fix(dccd): Fix a bad refactor
refactor(dccd): code cleanup

Conflicts:
	lib/change_detection/dirty_checking_change_detector.dart
chore(benchmark): Convert to DI bind syntax

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(cache): warnings

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(cd): Add a toString() method

This code was originally authored by @mhevery in the
DirectiveInjector change.
chore(parser): Remove unused 'annotationsFor' method from FormatterMap

This code was originally authored by @mhevery in the
DirectiveInjector change.