docs(compile/multidir): description for compile/multidir error

Closes #3459
docs(compile/notassign): description for compile/notassign error

Closes #3459
docs(compile/nodomevents): description for compile/nodomevents error

Closes #3459
docs(compile/selmulti): description for compile/selmulti error

Closes #3459
docs(compile/tplrt): description for compile/tplrt error

Closes #3459
fix($compile): always instantiate controllers before pre-link fns run

Controllers should be always instantiated after compile fn runs, but before
pre-link fn runs. This way, controllers are available to pre-link fns that
request them.

Previously this was broken for async directives (directives with templateUrl).

Closes #3493
Closes #3482
Closes #3514
fix(jqLite): throw when jqLite#off called with 4 args

Closes #3501
fix(docs/error): make minerr ids searchable

Closes #3513
docs(ngModel): clarify docs for NgModelController#

Closes #3498
fix(angular.copy): change angular.copy to correcly clone RegExp

angular.copy previously copied RegExp as an empty object. Change detects
RegExp instance and clones into new RegExp. This change is based on a previous
fix to allow Date to be copied.

Closes #3473
Closes #3474
fix(grunt): ensure all dependent tasks are called for all test task

Close #3421
chore(grunt): fix up the help text for the new test commands

Closes #3421
fix(jqLite): properly detect unsupported calls for on()/off()
docs(jqLite): update the minErr codes for on() and off()
feat($q): add shorthand for defining promise error handlers

Now we can instead this

    promise.then(null, errorHandler)

with this

    promise.catch(errorhandler)

Closes #2048
Closes #3476
chore($compile): remove bogus scope/controller check

We already have the same test in $controller which is called just a few lines above

Closes #3517
docs(httpBackend): update documentation for expect methods

`expect` methods can receive an Object as the data parameter, which was
undocumented.
fix(docs-bootstrap): Removed injector from bootstrapped docs samples

This is necessary to make e2e tests pass for implementing #3411. At present, the docs are violating the rule being enforced by double-bootstrap prevention.
docs(ngModel): validators should return undefined for invalid values.

Closes #3525
docs($compile): update directive type signature

To avoid "Argument type Array is not assignable to parameter type function" validation error  When using the minifcation-safe array style

(eg .directive('myDirective', ['$http','$timeout','$compile', function($http,$timeout $compile).... )

Closes #3392