fix(csp): fix autodetection of CSP + better docs

CSP spec got changed and it is no longer possible to autodetect if a policy is
active without triggering a CSP error:

https://github.com/w3c/webappsec/commit/18882953ce2d8afca25f685557fef0e0471b2c9a

Now we use `new Function('')` to detect if CSP is on. To prevent error from this
detection to show up in console developers have to use the ngCsp directive.

(This problem became more severe after our recent removal of `simpleGetterFn`
 which made us depend on function constructor for all expressions.)

Closes #8162
Closes #8191
test(jqLite): increase timeout and add a label

This test has been flaky on Sauce+IE.
I think 2secs might be not enough for IE sometimes.
chore(travis): enable SL video recording
chore(travis): increase browserNoActivityTimeout

We’ve seen many failures recently because of Karma killing a browser
after browserNoActivityTimeout. It’s possible that this is not any issue
other than super slow network / proxy.

Will try higher timeout and observe for a while.
docs(guide/unit-testing): add info on testing element transclude directives

Closes #4505
Closes #8197
refactor($compile): improve readability on conditional assignment

Use ternary operator instead of if statement

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

Use ternary operator instead of if statement

Closes #5065
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