fix($compile): collect ranges on multiple directives on one element

The problem was in keeping the values of `attrNameStart` and `attrNameEnd` between directive loop iterations which lead to the compiler looking for multi-element ranges for any directives that happened to be in the directive list after one that was applied on a range. For instance, having a ng-repeat-start and ng-class on a single element with ng-repeat being resolved first made the compiler look for an ng-repeat-end for both ng-repeat and ng-class because the `attrNameEnd` was not reset to a falsy value before the second iteration. As the result, an exception saying the block end element could not be found and the second directive was not actually applied.

Closes #4002
feat(docs): linkify error messages on minErr docs pages
fix(jqLite): use get/setAttribute so that jqLite works on SVG nodes

jqLite previously used `elt.className` to add and remove classes from a DOM Node, but
because the className property is not writable on SVG elements, it doesn't work with
them. This patch replaces accesses to `className` with `get/setAttribute`.

`classList` was also considered as a solution, but because only IE10+ supports it, we
have to wait. :'(

The JqLiteAddClass/JQLiteRemoveClass methods are now also used directly by $animate
to work around the jQuery not being able to handle class modifications on SVG elements.

Closes #3858
style($compile): remove unused variable
docs(ngDisabled): clarify
docs(dblClick): fix grammar
docs(ngCsp): fix grammar
docs(ngController): fix grammar
style($rootScope): fix argument name in $postDigest api
docs(overview.ngdoc): fix small typo in overview.ngdoc
docs(ngIf): formatting, clarity
docs(angular.Module): fix controller and directive method parameters
docs(guide/e2e-testing): select also uses ng-model (like input)

This is specified for input fields, but not for selects. This change specifies it also for select().
fix(log): prevent logging `undefined` for $log in IE

Closes #1705
docs(guide/overview): fix typo

Closes #4188
docs($timeout): add a $timeout example

The original example is by gxlcl.

Closes #4180
docs(mocks): fix syntax error in example

Closes #4183
fix(ngdoc): add default values to ngdoc template

ngDoc did not add default value to template, even though it was present
in the documentation. This change adds the default value to the
description column in the parameters table.

Closes #3950
fix($animate): ensure transition-property is not changed when only keyframe animations are in use

Closes #3933
docs(minerr): add note about ngRoute in injector/modulerr