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
chore(karma): Use Dartium launcher.

There is a Dartium launcher (in karma-chrome-laucher) which can be used
to launch Dartium browser in checked mode. There is no need for using ChromeCanary to launch Dartium any more.

Closes #826