fix(compiler, view): centralize TemplateElement checks and fix inconsistencies

Fixes #189
Closes #194
refactor(annotations): replace Module functions with plain lists.

Renames:
elementServices -> shadowDomServices.
feat(change_detection): add support for binary operations and literals
feat(change_detector): add support for formatters
feat(change_detector): add support for method calls
feat(change_detector): add support for negate
feat(change_detector): add support for ternary
feat(change_detector): add support for array literals
feat(change_detector): add support for map literals
feat(change_detector): cleanup
refactor(ChangeDetector): pass formatters when instantiating a watch group
chore: change the built task to ignore "unused import" errors
feat(ElementInjector): change ElementInjector so @parent and @ancestor do not include self.
feat(ElementInjector): add NgElement
chore: remove unnecessary file

Closes #182
fix(change_detection/lexer): support production mode

The Lexer uses the global `assert` function of Dart, which is not
yet available in JavaScript. Later on, all `assert` statements should
be automatically removed by Traceur.
feat(compiler): add benchmarks

- compileEmptyTemplate
- compile25ElementsNoBindings
- compile25ElementsWithBindings

For the results see the PR #197.

Closes #197
feat(view): add support for instantiation of nested component views.

Include shadowDom creation and integration tests for nested components.

Fix accidentally clobbered modules/core/test/compiler/view_spec.js by
previous commit.