fix($compile): render nested transclusion at the root of a template

Closes #8914
Closes #8925
docs($location): update search description to include number param
fix($location): remove an unused parameter of $location.url
fix($location): don't call toString on null values
fix(orderBy): allow arrayLike objects to be ordered

Closes #8944
chore(tests): update Protractor to v1.2.0
chore(tests): fix up test for protractor 1.2.0 update

These changes were made to master in 85880a64900fa22a61feb926bf52de0965332ca5
but never made it to the 1.2.x branch.
test(orderBy): remove IE8 incompatible test code
refactor($http): simplify buildUrl function

Closes #8955
chore(clean-shrinkwrap): chokidar is fixed since 0.8.2
chore(package.json): tidy up dependencies

Sorted dependencies into alphabetic order. If we can keep them like this
it will be much easier to keep track of version changes.

Updated bower and gulp to newer versions.
chore(bower): refactor bower usage

The gulp bower task in the docs app was never actually running since it couldn't
find the bower.json file and was silently failing. Updating to a newer bower
highlighted this issue.

This commit moves the docs app specific bower components into the docs folder.
There are only jquery and closure compiler related components in the project
folder now.

It also improves the gulp bower task to provide better feedback of progress
and errors.
docs(form): move param tag outside of main description
docs($filter): remove duplicate documentation of register method
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
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 9d9cdfb575b89e96ae957c986734a49995e2b511.

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.