chore(npm-shrinkwrap): fix karma dependencies

Updating to karma 0.12.13 (in commit 408508ad2972d7f5cf131be37c87d206cf10a5b7)
caused `iit` and `ddescribe` to crash and disconnect the browser stopping the
test run.

It appears that the problem is with one of the dependencies of karma rather
than karma itself. At least one of the karma dependencies updated in line
with karma's dependencies' semver specifications but subtly changed their
behaviour to break karma.  Possibly this is related to chokidar, glob,
minimatch or fsevents.
chore(npm-shrinkwrap): safely update karma to 0.12.23
test(ngRepeat): move an existing test into the right describe block
test(animateSpec): remove unused variables
chore(testabilityPatch): fix the dump fn so that it works with karma's debug.html
fix(ngRepeat): preserve original position of elements that are being animated away

During the recent refactoring a typo was made that broke code that detects if we are
already removed from the DOM (animation has completed).

Closes #8918
Closes #8994
chore(.jshintrc): add jqLiteBuildFragment to globals
chore(.jshintrc): add jqLiteParseHTML to globals
fix(ngInclude): correctly add svg-namespaced template content

It is now possible for ngInclude to correctly load SVG content in non-blink browsers, which do not
sort out the namespace when parsing HTML.

Closes #7538
Closes #8981
Closes #8997
fix($parse): disallow passing Function to Array.sort

Fix the following exploit:

    hasOwnProperty.constructor.prototype.valueOf = valueOf.call;
    ["a", "alert(1)"].sort(hasOwnProperty.constructor);

The exploit:
• 1. Array.sort takes a comparison function and passes it 2 parameters to compare.
  2. It then calls .valueOf() if the result is not a primitive.
• The Function object conveniently accepts two string arguments so we can use this
  to construct a function.  However, this doesn't do much unless we can execute it.
• We set the valueOf function on Function.prototype to Function.prototype.call.
  This causes the function that we constructed to be executed when sort calls
  .valueOf() on the result of the comparison.

The fix is in two parts.
• Disallow passing unsafe objects to function calls as parameters.
• Do not traverse the Function object when setting a path.
revert: "fix($compile): render nested transclusion at the root of a template"

This reverts commit 6d1e7cdc51c074139639e870b66997fb0df4523f.

This commit was causing breakages because of its assumption that transcluded
content would be handled predictably, i.e. with ngTransclude, whereas many
use cases involve manipulating transcluded content in linking functions.
docs(ngModel): update breaking change from 1.3.0-beta.11 to 1.3.0-beta.12

Closes #8357
test($parse): adding benchmark for execution of $parse()ed expressions

Part of #8901
perf($parse): remove getterFn wrapper for internal use

Closes #8901
docs: add perf todo notes from #8515
refactor(ngModel): remove $$invalidModelValue and refactor methods

- define `ngModelGet` and `ngModelSet` to already use
  the getter/setter semantics, so the rest of the code does
  not need to care about it.
- remove `ctrl.$$invalidModelValue` to simplify the internal logic
fix(ngModel): render immediately also with async validators
fix(ngModel): update model value with async validators correctly

If the view value changed in the first digest and there are async validators,
the view value was never applied to the model after the validators were
resolved. Only important for tests.
feat(ngModelOptions): add allowInvalid option

This option allows to write invalid values to the model instead of having them become undefined.
Use this together with calling `ctrl.$setValidity` directly for displaying errors
from serverside validation.

Closes #8290
Closes #8313