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