fix($location): use clone of passed search() object

Fixes bug when $location.search() is not returning search part of current url.

Previously, the location's internal search object could be set by passing an object to the search()
method. Subsequent changes to the passed search object would be exposed when requesting the search
object, but those changes would not appear in the composed url.

Now, the object is cloned, so the result of location.search() should match the contents of
location.absUrl(), provided the object returned from location.search() is not changed.

Closes #9445
style(filters) use consistent quote style and strict equality

before change quotes where mixed and one if contained equality operator instead of identity

Closes #9349
fix($injector): ensure $get method invoked with provider context

0d3b69a5f27b41745b504c7ffd8d72653bac1f85 broke this by calling $get with an undefined
context, which in strict mode would be undefined. This fixes this by ensuring that the
provider is used as the context, as it was originally.

Closes #9511
Closes #9512
chore(injectorSpec.js): make jshint happy

...oops ._.
fix(select): manage select controller options correctly

This fixes a regression that was introduced in 2bcd02d. Basically, the problem was that render() removed the wrong option from the select controller since it assumed that the option that was removed has the same label as the excessive option in existingOptions, but this is only correct if the option was popped from the end of the array. We now remember for each label whether it was added or removed (or removed at some point and then added at a different point) and report to the select controller only about options that were actually removed or added, ignoring any options that just moved.

Closes #9418
chore($sniffer): Remove $sniffer.msie & $sniffer.msieDocumentMode

Since msie is now set to document.documentMode, it's not necessary to keep
the documentMode in a separate property.

Also, msie is a variable global to Angular source so there's no need to
replicate it in $sniffer.

Closes gh-9496
docs(angular.injector): correct return type
docs(versions): remove the trailing slash in URLs when switch versions

Because `https://docs.angularjs.org/api/` can handler the trailing slash,
but `https://code.angularjs.org/1.2.24/docs/api` can not.

Fix #9043
Closes #9045
docs($location): fix description for `rewriteLinks`
refactor($location): remove redundant spaces
docs(\$http): add POST request example

Closes #9046
docs($http): use .get and .post shortcut methods in examples
feat($anchorScroll): support a configurable vertical scroll offset

Add support for a configurable vertical scroll offset to `$anchorScroll`.

The offset can be defined by a specific number of pixels, a callback function
that returns the number of pixels on demand or a jqLite/JQuery wrapped DOM
element whose height and position are used if it has fixed position.

The offset algorithm takes into account items that are near the bottom of
the page preventing over-zealous offset correction.

Closes #9368
Closes #2070
Closes #9360
chore(docs): apply the anchorScroll offset feature to the docs app

Closes #9360
WIP: fix up for Firefox