refactor($http): improve readability on conditional assignment

Use ternary operator instead of if statement

Closes #5065
refactor($parse): improve readability on conditional assignment

Use logical OR operator instead of if statement

Closes #5065
fix(ngRoute): remove unnecessary call to decodeURIComponent

Since `$location.$$path` is already decoded, doing an extra `decodeURIComponent` is both unnecessary
and can cause problems. Specifically, if the path originally includes an encoded `%` (aka `%25`),
then ngRoute will throw "URIError: URI malformed".

Closes #6326
Closes #6327
fix(orderBy): correctly order by date values

Closes #6675
Closes #6746
style($route): convert tab indent to spaces
fix($rootScope): $watchCollection should handle NaN in objects

This fixes a potential infinite digest in $watchCollection when one of the values is NaN. This was previously fixed for arrays, but needs to be handled for objects as well.

Closes #7930
fix(select): force visual update in IE

IE9, IE10 and IE11 would always show the first <option> as
selected when the user moves from a null <option>
to a non-null one in a non-null <select>.
Even though the model was being updated correctly,
visually, the first <option> always appeared selected.

Setting the `selected` property twice in a row
seems to fix it in all the three versions mentioned above.

Closes #7692
Closes #8158
docs(orderBy filter): fix controller name in example

Closes #8133
Closes #8206
revert: feat(*): lazy one-time binding support

This reverts commit cee429f0aaebf32ef1c9aedd8447a48f163dd0a4.

See #7700 for a more performant approach for bind-once.
perf(*): more performant interpolation and lazy one-time binding

BEAKING CHANGE:
Lazy-binding now happens on the scope watcher level.

What this means is that given `parseFn = $parse('::foo')`,
bind-once will only kick in when `parseFn` is being watched by a scope
(i.e. `scope.$watch(parseFn)`)

Bind-once will have no effect when directily invoking `parseFn` (i.e. `parseFn()`)
test(ngOptions): ensure that one-time bindings works in ngOptions

Related #7700

Closes #8029
chore(travis): get npm dependencies from npm-bundle-deps
fix($http): fix double-quoted date issue when encoding params

This commit special cases date handling rather than calling toJSON as we always need
a string representation of the object.

$http was wrapping dates in double quotes leading to query strings like this:
  ?date=%222014-07-07T23:00:00.000Z%22

Closes #8150
Closes #6128
Closes #8154
refactor(bootstrap): Remove support for old bootstrap mechnanisms

Remove support for bootstrap detection using:

* The element id
* The element class.

E.g.

```
<div id="ng-app">...</div>
<div class="ng-app: module">...</div>
```

Removes reference to how to bootstrap using IE7

BREAKING CHANGE:

If using any of the mechanisms specified above, then migrate by
specifying the attribute `ng-app` to the root element. E.g.

```
<div ng-app="module">...</div>
```

Closes #8147
style($injector): added whitespace
feat($compile): explicitly request multi-element directive behaviour

Directives which expect to make use of the multi-element grouping feature introduced in
1.1.6 (https://github.com/angular/angular.js/commit/e46100f7) must now add the property multiElement
to their definition object, with a truthy value.

This enables the use of directive attributes ending with the words '-start' and '-end' for
single-element directives.

BREAKING CHANGE: Directives which previously depended on the implicit grouping between
directive-start and directive-end attributes must be refactored in order to see this same behaviour.

Before:

```
<div data-fancy-directive-start>{{start}}</div>
  <p>Grouped content</p>
<div data-fancy-directive-end>{{end}}</div>

.directive('fancyDirective', function() {
  return {
    link: angular.noop
  };
})
```

After:

```
<div data-fancy-directive-start>{{start}}</div>
  <p>Grouped content</p>
<div data-fancy-directive-end>{{end}}</div>

.directive('fancyDirective', function() {
  return {
    multiElement: true, // Explicitly mark as a multi-element directive.
    link: angular.noop
  };
})
```

Closes #5372
Closes #6574
Closes #5370
Closes #8044
Closes #7336
docs(guide/forms): fix controller name in example

The "Binding to form and control state" sample had the wrong controller name

Closes #8206
docs(misc core): fixed broken angular.copy example

The module was not being registered, and this broke the example for who knows how long!

Closes #8218
revert: chore(travis): get npm dependencies from npm-bundle-deps

This commit was causing some issues with CI testing, so it's being temporarily removed until that's
resolved.

This reverts commit 8881606cd93cc42cb8295c0d63dac7b81e6cc8cc.
test($http): ignore date-toJSON test if running in IE8

IE8 does not implement Date.prototype.toISOString(), which is necessary for this feature. The
feature still works if this method is polyfilled, but these tests are not run with polyfills.

(Added to master branch to keep tree in sync)