fix($animate): ensure that parallel class-based animations are all eventually closed

When multiple classes are added/removed in parallel then $animate only closes off the
last animation when the fallback timer has expired. Now all animations are closed off.

Fixes #7766
docs($location): update $location.search() jsdoc signature

Closes #8050
chore(watchr-docs): remove watchr-docs.rb

This file hasn't changed in forever, and doesn't seem to be in use any longer.

Closes #7978
feat(input): support constant expressions for ngTrueValue/ngFalseValue

ngTrueValue and ngFalseValue now support parsed expressions which the parser determines to be constant values.

BREAKING CHANGE:

Previously, these attributes would always be treated as strings. However, they are now parsed as
expressions, and will throw if an expression is non-constant.

To convert non-constant strings into constant expressions, simply wrap them in an extra pair of quotes, like so:

    <input type="checkbox" ng-model="..." ng-true-value="'truthyValue'">

Closes #8041
Closes #5346
Closes #1199
chore(e2e): update protractor to 1.0.0-rc2 and add more logging

Use the new options from the reporter to add more logging to end to end tests,
and increase the Jasmine test timeout from 30 seconds to 60 seconds to allow for
legitimately long-lasting tests.
docs($sce): fix code samples and example

The code samples were using `<pre>` tags rather than code fences (```) so they were
not being displayed correctly.

The inline code example (defined by a `<example>` element) had been placed in an
`@example` jsdoc tag, so rather than appearing inline at the declaration point in
the text, they were being appended to the end of the document in the `Example` section.

Closes #8053
docs($logProvider): debugEnabled is a method not a property

Closes #7824
docs($compile): fix minor typo

Closes #8048
docs(guide/di): clarify what "services" can be injected into .config() and .run()

Closes #8106
docs(guide/di): further clarification of what can be injected
docs(guide/controller): only show best practice controller creation

If it is not recommended to use a global function to create controllers,
why should it be shown as possible in the documentation?

One of the most common complaints about AngularJS is that it doesn't enforce
any convention. This is intentional and I generally like this.
However if we can avoid outright bad implementations in examples I believe
we should.

Closes #8011
docs(guide/controller): tweak initial example
docs(tutorial/step-7): improve injector information

I attempted to tighten up the language around the DI overview so that it was clearer
and more explicit. The sole responsibilities sentence was semantically jarring and
I think looks better as a list.  Some minor grammar improvements.

Closes #7099
docs(tutorial/step-0): remove hyphen and clarify items

Closes #5953
chore(docs/css): add margin between ul and p elements

Bootstrap CSS was removing the margin after ul elements if they were
descendents of other ul elements. But if the ul was followed by a p
then this looked terrible.

Related to #5953
docs($httpProvider): add missing documentation

Add documentation for $httpProvider default values

Closes #7782
docs($httpProvider): revert removal of comments

Related to #7782
fix(ngModel): test & update correct model when running $validate

If `$validate` is invoked when the model is already invalid, `$validate`
should pass `$$invalidModelValue` to the validators, not `$modelValue`.

Moreover, if `$validate` is invoked and it is found that the invalid model
has become valid, this previously invalid model should be assigned to
`$modelValue`.

Lastly, if `$validate` is invoked and it is found that the model has
become invalid, the previously valid model should be assigned to
`$$invalidModelValue`.

Closes #7836
Closes #7837
test(input): simplified $apply syntax
docs(error/$rootScope/inprog): fix $timeout typo

Closes #8071