docs(guide.unit-testing): fix typo
fix(ngPattern): allow modifiers on inline ng-pattern

Add support for regex modifiers on inline `ng-pattern`.
`ng-pattern="/regex/i"` now validates correctly.

Closes #1437
docs(injector): fix typo in inlining example

The actual invoke call in the documentation was referring to the non-existent tempFn instead of tmpFn
docs(directive guide) typo in compile/link section

The code snippet shows `{{action.description}}`, the explanation referred to it as `{{action.descriptions}}`.
doc(ngClassEven): make consistent with ngClassOdd
fix(ngModel): use paste/cut events in IE to support context menu

In IE the model is not updated when the input value is modified using the context
menu, e.g. pasting from the clipboard, or cutting all or part of the current value.
To capture these changes, we bind to the proprietary 'paste' and 'cut' events.

Closes #1462
fix(i18n): escape all chars above \u007f in locale files

Modify the script that writes the locales so all characters above \u007f are escaped
Includes the updated locale files after running the closureI18nExtractor.

Closes #2417
test(modules): fix module tests which got disabled by ngMobile

When ngMobile was merged in, we accidentaly included angular-scenario.js
in the test file set for modules. Loading this file overrode jasmine's
`it` and `describe` global functions which essentially disabled all of
~200 unit tests for wrapped modules.

This change refactors the code to run the wrapped module tests.

I had to extract browserTrigger from scenario runner in order to achieve
this without code duplication.
docs(ngBind): fix typo
docs(select): fix attribute documentation

Select documentation was still referring to binding to name, when it should be ng-model instead. Fixed it.
docs(input): fix typo on max attribute
docs(overview): correct the input validation example

The documentation says that the input should be red if you enter
invalid values or leave it blank. Because the type="integer" is not
supported this does not happen in practice.  This fix changes the
input type to number and adds an ng-pattern to ensure that the number
is an integer.
docs(concepts): fix spelling error
feat(ngIf): add directive to remove and recreate DOM elements

This directive is adapted from ui-if in the AngularUI project and provides a complement
to the ngShow/ngHide directives that only change the visibility of the DOM element and
ngSwitch which does change the DOM but is more verbose.
chore(ngDoc): fix a typo with IE warning
docs(guide): minor grammatical change
docs(forms): fix typo
docs(forms): fix formatting
docs(compiler): fix variable scope in drag sample

Note that without this fix, if you add a second draggable element, the
two instances clobber each other since there is only one set of
startx/starty/x/y variables.
Here is an example: http://plnkr.co/edit/aGrLXcIo2SuaePuAdfmQ?p=preview.
On the surface it looks like it would be fine because you only have one
mouse but in practice the start position jumps when you start dragging.
Here it is fixed: http://plnkr.co/edit/VuvPasuumtCeiVRisYKQ?p=preview
docs(compiler): don't drag selected content

In the example with draggable, the mouseDown handler needs to start with an event.preventDefault(). Otherwise the following bug occurs:
1) Select the text of the draggable span by clicking outside the span and dragging the mouse to the left or right through the span. Release the mouse button.
2) Now click on the span's inner text, and start to Drag it. The browser's default functionality that drags highlighted text so that it can be pasted into something else (say a document in a text editor) is invoked.
3) Release the mouse button. Now suddenly, you'll be dragging the span. But you won't be able to place it down on the page. It'll just follow the mouse around until the page is refreshed.

Closes: #2465