docs(ngController): do not attach a controller twice

A common mistake for beginners is to attach a controller in both the
$routeProvider and also in the html document using the ng-controller
directive. This change highlights this, to help prevent developers from
doing so in the future.

Closes #4409
docs(tutorial/step-07): fix typo

Closes #4410
docs(modulerr): fix typo

Closes #4418
docs($provide): Fix typo

Closes #4420
docs(ngNonBindable): fix punctuation

Closes #4424
fix($compile): instantiate controlers when re-entering compilation

When we re-enter compilation either due to async directive templates or element transclude directive
we need to keep track of controllers to instantiate during linking.

This piece of info was missing when re-entering compilation and that's what this commit fixes.

I also reordered the properties in the previousCompileContext object.

Closes #4434
Closes #4616
docs(ngBindHtml): add example

Closes #4427
docs(tutorial/step_00): reword sentence to make sense

Closes #4429
docs(select): fix typo

Closes #4433
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