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($location): add support for state and title in pushState

Adds $location pushState & replaceState methods acting as proxies to history
pushState & replaceState methods. This allows using pushState to change state
and title as well as URL. Note that these methods are not compatible with
browsers not supporting the HTML5 History API, namely IE<10.