feat(http): support coalescing http requests

To enable this, configure the HttpConfig module with a coalescing
duration.  Doing so will enable all HTTP responses that arrive within
that interval to all be processed in a single digest.  Typically, this
is most helpful if you have many XHRs that are all going to be satisfied
by cached responses causing them to happen in quick succession.

e.g. Use something like this to configure a 50ms interval.

    bind(HttpConfig, toValue: new HttpConfig(
        coalesceDuration: new Duration(milliseconds: 50)));
fix(directive-injector): Pass the correct injector into nested views

Replace DefaultDirectiveInjector with DirectiveInjector (with parent = null).

Application Injector reference is passed through view creation and
passed into new Directive Injector (instead of using
parentInjector.appInjector, which is wrong).

New public method on dependency injector - parentGet. Allowing to get
through the usual chain but skipping itself (used for NgControl).

Remove EventListener from View.

Closes #1244
feat(router): added vetoable preLeave event

BREAKING CHANGE

Previously, vetoing was allowed on leave (RouteLeaveEvent) which caused
issues because routes had no way to recover from other route vetoing a leave
event.

Now, similar to preEnter and enter, leave event was split into vetoable
preLeave (RoutePreLeaveEvent) and non-vetoable leave (RouteLeaveEvent).

    views.configure({
      'foo': ngRoute(
          path: '/foo',
          preLeave: (RoutePreLeaveEvent e) {
            e.allowLeave(new Future.value(false));
          })
    });

Closes #1070
feat(form): Add support for input[type=color]

Closes #611

Closes #1080
chore(di): update di to 2.0

Closes #1263
Revert "fix(directive-injector): Pass the correct injector into nested views"

This reverts 59323daea6ff36ccf44c32dc053e243e0b655896.

Without a default implementation for DirectiveInjector, this results in
a runtime exception (no provider found.)

Issue #1244