feat(directives): remove the @Controller directive

Completely remove the deprecated Controller directive.

Major update to the demos to use setRootContext (where applicable) and
to move to Components for the beefier demos (bouncing balls and form).

A temporary work around was required in demos (animation and todo)
so that rootContext have Map interface. The work arounds will disappear
after the context is set to the component.

Library changes were pulled out of the first commit in #1269.

Closes #1401
feat(scope): move domWrite and domRead from RootScope to Scope

Closes #1161

Closes #1341
chore(package.json): require newer karma-dart

This is needed for PR 1375.
fix: remove analyze warnings

Closes #1411
refactor: misc cleanup

Closes #1395
reflactor(parser): rename DynamicParser into Parser

Since there is only one implementation of the Parser interface, which is used for both dynamic and static deployments, calling it DynamicParser is misleading.

- Remove the Parser interface
- Rename rename DynamicParser into Parser
- Rename DynamicParserBackend into RuntimeParserBackend

Closes #1251
chore(travis): speed up dart2js unit tests

The dart2js jobs run times are dominated by slow Firefox runs.  In my
experiments, running multiple Firefox instances in parallel and sharding
the tests among them proved beneficial.

With this commit, the dart2js jobs take about 10m to run instead of 30m.
Compare these two recent Travis runs:
- 10m: <https://travis-ci.org/angular/angular.dart/builds/34415853>
  (this commit.)
- 30m: <https://travis-ci.org/angular/angular.dart/builds/34341163> (the
  commit just before this one.)

The following information is from earlier Travis runs.  Look at this
Travis run:
<https://travis-ci.org/angular/angular.dart/jobs/33159766>.  We can see
that the Firefox tests take 2m30s to run as opposed to the 25m [in a
regular run](https://travis-ci.org/angular/angular.dart/jobs/33152203).

There are actually 4 jobs running Firefox karma in parallel, each
running 1/4th of the normal tests.  The output is mingled but ok.

```text
Firefox 30.0.0 (Linux): Executed 409 of 409 SUCCESS (2 mins 16.855 secs / 2 mins 15.357 secs)
....................
..................................................
........................................
..................................................
Firefox 30.0.0 (Linux): Executed 410 of 410 SUCCESS (2 mins 14.153 secs / 2 mins 12.805 secs)
..................................................
........
Firefox 30.0.0 (Linux): Executed 408 of 408 SUCCESS (2 mins 34.253 secs / 2 mins 39.31 secs)
..................................................
...........
Firefox 30.0.0 (Linux): Executed 411 of 411 SUCCESS (2 mins 30.957 secs / 2 mins 29.93 secs)
```

This is how our traditional Firefox runs look:

```text
Firefox 30.0.0 (Linux): Executed 1565 of 1565 SUCCESS (25 mins 34.727 secs / 17 mins 13.582 secs)
```

Notes:
- The test output for the different shards are all intermingled.  This
  doesn't seem to be a big deal at the moment (they're all mostly just
  printing dots anyway) and we can certainly improve it later.  (GNU
  parallel instead of xargs would do this automatically but I think
  isn't installed and we don't have sudo.  We could roll our own.)
- Prereq: Commit 87279feb5096c3da29bc3014e8117d6d83cbf75a
feat(travis): Also check for dart2js sizes that are unexpectedly small