perf(view factory): Remove a try-catch and a timer for the critical path

This saves 4% (50ms) in the TreeComponent benchmark.
perf(view factory): Remove try-finally from ElementBinder._link

This saves 9% of the runtime in the TreeComponent benchmark.
perf(watch group): Do not use List.map for tiny lists
perf(view factory): Compute DI Keys ahead of time

4% improvement in TreeComponent benchmark

For #1081

Closes #1085
fix(element binder): fix memory leak with expando value holding onto node

Expando keys are weak references but the values are not.  The
ElementProbe value holds strong references to the node and the injector
keep it from being garbage collected.
fix(transcluding component factory): allow removing components that have no content to transclude
feat(ng-base-css): useNgBaseCss Component annotation field.

Introduces a useNgBaseCss field in the ```@Component``` annotation.

It defaults to true, but when set to false, the component will not
load any base CSS files.  For components that do not rely on base
CSS, loading a global CSS file can be a significant performance issue.

Best practices say that large global CSS files are an anti-pattern for
shadow DOM based apps.  ng-base-css allows apps to use this anti-pattern
to support legacy app design.

The useNgBaseCss field allows app developers to transition to
per-component styles and reap the performance benefits immediately.
chore(tests): Disable tests due to dartbug.com/19177
benchmark(tree): Add the TreeComponent benchmark.

This benchmark exercises component creatation.
perf: Use precomputed keys with injector for performance reasons.

Closes #1081
test(_specs): Add types, follow coding conventions
test(_specs_spec): remove tests that belong to guinness
refactor(ng-repeat): refactor fix for #1015
fixup - refactor some code
test