docs($routeProvider): document route.resolve rejection

Add documentation that the $routeChangeError event is fired when a
route resolve promise is rejected

Closes #4447
docs(error/multidir): improve the sentence fluency

Closes #4449
docs(ngModelController): $parent can help isolate scope directives
fix($animate): skip unnecessary addClass/removeClass animations

Skip addClass animations if the element already contains the class that is being
added to element. Also skip removeClass animations if the element does not contain
the class that is being removed.

Closes #4401
Closes #2332
style($route): fix line length
chore(validate-commit-msg.js): increase the max line limit for commit messages from 70 to 100
docs(rootScope): add example of using a listener function for $watch

Closes #4451
docs(ngClass): fix typo

Closes #4471
chore(grunt): add jshint to the test task

It is very easy to let jshint failures slip into the master build if
the jshint task is not part of the standard local grunt tasks.
docs(guide/expression): fix duplicate key error in example

The example that demonstrates how to parse expressions can fail if you
pass in the same expression twice.  By using "track by $index" we can
fix this.

Closes #4472
docs(guide/e2e-testing): remove superfluous block of text

The removed block is repeated from the unit-testing guide and appears
in an awkward place in this text.

Closes #4456
docs(guide): rewrite guide landing page

Change landing page to include a set of curated links with subject
headings as a guide through Angular's docs and other resources.

Closes #4470
docs(tutorial/step-5): fix wrong link to services guide

Closes #4477
style(injectorSpec): fix typo in "it" description

Closes #4483
docs(tutorial/step-2): add beforeEach to load module

The non-global controller test throws an error because the test does not
know about the module and so can not find the controller. This change
tells the test about the module so the test can find the controller.

Closes #4489
docs(ngIf): fix typo

Closes #4512
docs(tutorial/step-7): add doctype directive to example

Closes #4552
docs(guide/bootstrap): fix typo

Closes #4578
docs(compile): fix typo in 'Attributes' description

Closes #4589
fix($compile): attribute bindings should not break due to terminal directives

Recently we changed the priority of attribute interpolation directive to -100
to ensure that it executes early in the post linking phase. This causes issues
with when terminal directives are placed on elements with attribute bindings
because the terminal directive will usually have 0 or higher priority which
results in attr interpolation directive not being applied to the element.

To fix this issue I'm switching the priority back to 100 and making moving the
binding setup into the pre-linking function.

This means that:

- terminal directives with priority lower than 100 will not affect the attribute
  binding
- if a directive wants to add or alter bindings it can do so in the pre-linking
  phase, as long as the priority of this directive is more than 100
- all post-linking functions will execute after the attribute binding has been
  set up
- all pre-linking functions with directive priority lower than 100 will execute
  after the attribute bindings have been setup

BREAKING CHANGE: the attribute interpolation (binding) executes as a directive
with priority 100 and the binding is set up in the pre-linking phase. It used
to be that the priority was -100 in rc.2 (100 before rc.2) and that the binding
was setup in the post-linking phase.

Closes #4525
Closes #4528
Closes #4649