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

Fixes #189
Closes #194
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