fix(jqLite): fix event.stopImmediatePropagation() so it works as expected

jqLite doesn't override the default implementation of event.stopImmediatePropagation()
and so it doesn't work as expected, i.e, it doesn't prevent the rest of the event
handlers from being executed.

Closes #4833
test(jqLite): Refactor test for isDefaultPrevent

Refactor the spec for isDefaultPrevent method so it fails if the
existing expectations aren't executed.
fix($compile): update '@'-bindings in controller when bindToController is true

'@'-bindings were previously updating the scope when they ought to have been
updating the controller (requested via `bindToController: true` + controllerAs).

It's a one-line fix + test case.

Closes #9052
Closes #9077
docs(ngShowHide): use backticks to denote CSS classes and directive names

add backticks around directive names to improve documentation consistency, as it's used in some
parts of the docs already.

Closes #9081
refactor(map) Use Array.prototype.map instead of our own function

Replace helper functions with the native ES5 method