fix($http): allow empty json response

When a response contains an `application/json` header and
the response is empty the response should be left as is.

Fixes #9532
Closes #9562
feat(currencyFilter): add fractionSize as optional parameter

currencyFilter accepts number of decimals to round off to

Closes #3642
Closes #3461
Closes #3642
Closes #7922
Added caveat to attr() function of jqLite

attr() does not support functions as parameters.
feat(jqLite): add private jqDocumentComplete function

This helper function can be used to execute a callback only after the
document has completed its loading, i.e. after the `load` event fires
or immediately if the page has already loaded and
`document.readyState === 'complete'`.
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
Merge branch 'master' of https://github.com/angular/angular.js

# By Peter Bacon Darwin (3) and others
# Via Peter Bacon Darwin
* 'master' of https://github.com/angular/angular.js:
  chore(docs): apply the anchorScroll offset feature to the docs app
  feat($anchorScroll): support a configurable vertical scroll offset
  feat(jqLite): add private jqDocumentComplete function
  Added caveat to attr() function of jqLite
  feat(currencyFilter): add fractionSize as optional parameter
  fix($http): allow empty json response