feat(dccd): add Support for ObservableList, ObservableMap & ChangeNotifier

Lower the target time to prevent a memory overflow. Benchmark added.

To use annotate your models with @Observable or use ObservableList or
ObservableMap.

Fixes #773
Closes #1156
feat(directive injector): Assert that the injector has been initialized
refactor(Directive): remove all usages of deprecated Directive.*_VISIBILITY constants
refactor(Directive): Remove deprecated Directive.*_VISIBILITY constant

This changes is a BC break. The old constants should be replaced with
the new ones:

Before:

    Directive.LOCAL_VISIBILITY
    Directive.CHILDREN_VISIBILITY
    Directive.DIRECT_CHILDREN_VISIBILITY

After:

    Visibility.LOCAL
    Visibility.CHILDREN
    Visibility.DIRECT_CHILD
chore(changelog): update the changelog script
docs(CONTRIBUTING): fix minor grammar issues

Copyedit - fix minor grammar issues
fix(introspection): fix ngProbe with introspected bindings and findElements returning only elements

This change
1) organizes the introspection unit tests to more clearly separate them into
elementProbe tests and testability tests.

2) Modifies `interpolate` to return an `Interpolation` object which contains the
interpolated string and a list of binding expressions.

3) Adds an optional third parameter to findElements and findBindings which makes
the returned list include only elements or both elements and nodes (in practice,
these are text nodes). This defaults to only returning elements.
chore(di): update DI to 3.3.1
refactor(metadata extractor): remove a ref to Controller
doc(View): expand inline doc
doc(NgElement): add docs to NgElement
test(ng_model): reenable disabled test

Seems to be fine with dart v1.7

Closes #1236
fix(benchmark): update benchmark to work with new context.
Changed route_hierarchical version constraint
chore(pubspec): update pubspec.lock. fixes travis.
chore(example): add explicit dependency on quiver

This was incorrectly removed in
a4f08a798df7525132ec7b0e18c4c6a8091480e8 and worked due to a transitive
dependency.  The transitive dependency went away in
30af82f0a85c870c1bc28e80476f3c9bba43ab9c causing the examples to break.
chore(reporter): record lexer benchmark results

This initial version sends benchmark metrics to the backend server.

Visit https://ng-dash.appspot.com/commit/fb2aa60a584dd4b2bbb3d30e8fcd4c588f8669ed
or https://ng-dash.appspot.com/all to see an example.  (github:
https://github.com/chirayuk/ng-dash)

In this version, only Dart code run from the command line is able to
record such reports.

The code in benchmark/_reporter.dart handles sending the data to the
server.  A future version will mode this code into a locally running
proxy server enabling browser based Dart code to send such reports while
still including the information from the build environment.

Reading data from the report server does not require any auth.  See a
simple example at https://github.com/chirayuk/ng-dash/commit/ex_01

Writing data requires authentication.  Specifically, the REST server
requires two cookies set:  user_email and user_secret.  (user_email does
not have to be a valid e-mail just like AppEngine user e-mails.)  Of
these, user_secret is meant to be secret and should be safeguarded.  For
Travis, user_email is "travis-ci.org" and user_secret is encrypted in
the .travis.yml.  Refer
http://docs.travis-ci.com/user/build-configuration/#Secure-environment-variables
for details on how this is done.

Closes #1159
docs(examples): Add a paper-input example
fix(test): remove at trailing "," in JS object literal
fix(animate): Remove a reference to dart:mirrors