Merge branch 'release/0.1.8' into development
feat(browserTrigger): allow support for custom timeStamps in events
fix(ngAnimate): ensure that delays are always considered before an animation closes

Closes #4028
feat(ngEventDirectives): add `ngCopy`, `ngCut`, and `ngPaste`

Closes #4172, #4170
docs(minerr): fix broken style from long line in nonassign
docs(minerr): fix bad line wrap due to errand nowrap in CSS
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