refactor(NgControl): erase redundant state flags
refactor(forms): remove scope event communication between controls
fix(forms): store models instead of controls within the collection of errors
fix(forms): consider forms as pristine only when all the inner models are non-dirty
refactor(forms): add return types and noop values for boolean getters
refactor(NgValidator): change interface and variable names
feat(core_dom): introduce NgElement
refactor(forms): use NgElement instead of dom.Element
refactor(NgModel): remove unused form code
chore(NgModelValidators): add ng- prefix to all validator classes
feat(NgModel): introduce parsers and formatters
fix(NgModel): ensure DOM value changes are only applied during scope.domWrite
feat(forms): append valid/invalid CSS classes for each validator on all controls
fix: properly restore locale after test

Closes #708
chore(lexer): Introduce different classes of tokens.

Use the new token classes to restrict the grammar to only
allow identifiers or keywords as filter and member names.
For object literal keys we also allow strings.

Closes #711