docs(Angular.js): explain that toJson strips $... properties

In Angular.toJson, any properties with a leading '$' character will be
stripped from the resulting string since angular uses this notation
internally for services.  There have been complaints of not knowing
about this functionality until it breaks within their code.
docs($cacheFactory): show that you can access existing caches
chore: add karma-script-launcher plugin

This plugin is shipped as a default one with Karma. It's specified as a peer dependency.

I assume, there's an old version of NPM on the CI server, which does not support peerDependencies and therefore it didn't get installed.

This will make the dependency explicit.
fix(Angular.js): handle duplicate params in parseKeyValue/toKeyValue

parseKeyValue and toKeyValue can now handle duplicate values in the query.
```
?x=1&x=2 <-> {x:[1,2]}
```

The algorithm looks like:
    1)parseKeyValue looks for presence of obj[key]
    2)detects and replaces obj[key] with [obj[key],val]
    3)then pushes more duplicates if necessary
    4)toKeyValue decodes array correctly
    5)(not changed)$location.search({param: 'key'}) still replaces if necessary
    6)(not changed)$location.search({param: ['key1', 'key2']}) sets the url with duplicates

BREAKING CHANGE: Before this change:
- `parseKeyValue` only took the last key overwriting all the previous keys;
- `toKeyValue` joined the keys together in a comma delimited string.
This was deemed buggy behavior. If your server relied on this behavior
then either the server should be fixed or a simple serialization of
the array should be done on the client before passing it to $location.
test(ngRepeat): fix IE8 test compatibility issue
feat(minErr): Error stripping build step
fix(jqLite): rename jqLiteError to jqLiteMinErr
docs(guide/location): fix example code - `hashPrefix` is a method
fix($injector): refactor module loading code and use minErr
revert: test(ngRepeat): fix IE8 test compatibility issue

This reverts commit 0c6fb665a4e2e1e7ceb11372153963658d4b53b1.

The change invalidated the test because the point of the the test
was to test that an element directive works. Changing it to attribute
directive was wrong.
test(ngRepeat): disable an element directive test on IE8