chore(docs): Basic descriptions for package libraries

Closes #782
chore(test): fix final disabled input test

Closes #797
fix(test): fixes for latest unittest lib

Closes #811
perf(DirtyCheckingChangeDetectorGroup): Disable calls to _assertRecordsOk().

Disabled calls to _assertRecordsOk function as it is too slow.

Closes #813
chore(karma.conf): add support for Firefox

Add `karma-firefox-launcher` to `karma.conf.js`. Note that it is
already included in `package.json`.

Closes #815
refactor(scope): watch "readOnly" arg renamed to "canChangeModel"

closes #739

This changes is a BC break:
- the "readOnly" parameter has been renamed to "canChangeModel",
- the semantic is inversed

Before:

    // Default to digest (readOnly = false by default)
    scope.watch(exp, fn);
    // Explicit flush
    scope.watch(exp, fn, readOnly: true);

After:

    // Default to digest (canChangeModel = true by default)
    scope.watch(exp, fn);
    // Explicit flush
    scope.watch(exp, fn, canChangeModel: false);

Closes #817
refactor(AstParser): make AstParser private, no more injectable

follow up for #788

Closes #818
chore(styles): Add default styles

Closes #820
chore(lib): refactor documentation into proper libraries

angular:animate
angular:bootstrap
angular:bootstrap:dynamic
angular:bootstrap:static
angular:core
angular:directive
angular:filter
angular:introspection
angular:mock
angular:perf
angular:routing
di
route:client
feat(metadata extractor): Cache the fieldMetadataExtractor for greater performance

Dartium tests run in 7.6s; down from 18.2s.
dart2js on Chrome runs in 2m instead of 3m
chore(bootstrap): rename: ngDynamicApp -> dynamicApp; NgApp -> Application
fix(export): Add missing NgController to angualr.dart
test(ng_model): detect browsers that do not support `simulateTypingText`

Detect browsers that do not support `simulateTypingText` and skip tests
that rely on it.

Closes #814
fix(docs): reenable broken doc generation
fix(watch_group): remove debugging print statement
test(scope_spec): fix descriptions and typo
chore(selector): Remove the selector.match() function.  Clean up tests.
fix(dirty-checking): handle simultaneous mutations and ref changes

This applies to both maps and lists/iterables.

Consider the case when one is watching an expression, say, `items`, that
evaluates a list.  Now consider the case when one both mutates that
list and also updates `items` to point to a different list.  In this
case, the reported changes should be between the earlier observed
collection and the newly observed collection.  The previous
implementation is buggy.  It first observes that the original list was
mutated and then observes that the reference to the list was updated to
a different list.  The changes it reports are the differences between
the mutated list and the new list which is incorrect.

This commit fixes the bug by noticing the case when both a mutation of
the previously tracked sequence and a ref change occurs and resets the
change record to undo the recording of the mutation.
test(scope_spec): fix typo
feat(NgAnnotation): Use `module` parameter to publish types.

`module` parameter in NgAnnotation (and other annotations that extend
it) can be used to publish types. The change is a bit more wordy
but it is a lot more powerful.

BREAKING CHANGE: `publishTypes` parameter is removed.

@NgDirective(
  publishTypes: [FooInt]
)
class Foo extends FooInt {
}

becomes

@NgDirective(
  module: Foo.module,
  visibility: NgDirective.LOCAL_VISIBILITY
)
class Foo extends FooInt {
  module() => new Module()
    ..factory(FooInt,
              (i) => i.get(Foo),
              visibility: NgDirective.LOCAL_VISIBILITY)
}

Closes #779