chore: ignore .DS_Store file
fix(filters): Fix filters in the code-gen parser
feat(spec): Do not fall-thru to the dynamic parser in the static parser spec
chore(codegen): Factored reserved keyword logic into a library
feat(scope): add $watchSet API

Allows watching a set of expressions. If any one expression changes
then the reaction function fires.
doc(scope): add $watch / $watchCollection documentation
feat(interpolate): use $watchSet to remove memory pressure
feat(scope): early exit of digest loop

At any given time there are many watchers in the 
system. When watcher fires it can change the 
model. This change may now cause an earlier watch 
to be eligible for firing. For this reason the 
watches need to be re-checked several times, until 
no watchers fire. Currently the system loops until 
there is a clean run through the loop. This means 
that every watch needs to run at least twice. A 
better way is to remember the last fired watch, 
and then exit the loop early when the the last 
watch has been reached again.
chore(print): remove left-over print() statements
chore(scope): explicitly declare variables in scope digest
feat(probe): Access injector, scope, directives from REPL

Add global methods to make it easier to debug Angular application from
the browser's REPL, unit or end-to-end tests.

Closes #305
chore(gitignore) add dart2js temp files to .gitignore
feat(ngForm): introduce basic support for the form directive
feat(probe): add ngQuery which can cross shadow root boundaries
fix(expression_extractor): support extracting expresions from attr mapping annotations

Closes #291
chore(expression_extractor): moved expression_extractor to lib
chore(pubspec): upgraded pubspec.lock
chore(perf): reflect speed test
feat(di): introduced @NgInjectableService to make di codegen easier
feat(parser_generator): allow specifying output file