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
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
fix(angular.core): re-export required annotations
refactor(element binder): Create an ElementBinderBuilder class
fix: Add test to compile examples, fix imports for examples
fix(transformers): fix accidental breakage due to library rename. Added tests.
feat: presubmit now rebuses before it pushes to master
chore: run perf tests as part of build
chore: automatically rebase onto master in presubmit