fix(docs): specify disqus_url
fix(scope): $watch (and angular.equals) should support NaN values

- since NaN !== NaN in javascript digest can get into an infinite loop
  when model value is set to NaN
- angular.equals(NaN, NaN) should return true since that's what we
  expect when comparing primitives or objects containing NaN values

Previously NaN because of its special === properties was used as the
initial value for watches, but that results in issues when NaN is used
as model value.

In order to allow for model to be anything incuding undefined and NaN we
need to mark the initial value differently in a way that would avoid
these issues, allow us to run digest without major perf penalties and
allow for clients to determine if the listener is being called because
the watcher is being initialized or because the model changed. This
implementation covers all of these scenarios.

BREAKING CHANGE: previously to detect if the listener was called because
the watcher was being initialized, it was suggested that clients check
if old value is NaN. With this change, the check should be if the newVal
equals the oldVal.

Closes #657
feat(service.$autoScroll): scroll to hash fragment

- whenever hash part of the url changes
- after ng:view / ng:include load
docs(guide): fix directives guide docs
feat($browser): xhr returns raw request object
fix($browser.xhr): change method "JSON" to "JSONP"

Breaks "JSON" xhr method is now called "JSONP"
fix($browser.xhr): respond with internal -2 status on jsonp error

If jsonp is not successfull, we return internal status -2.
This internal status should by normalized by $xhr into 0,
but $xhr needs to distinguish between jsonp-error/abort/timeout (all status 0).
fix($browser.xhr): fix IE6, IE7 bug - sync xhr when serving from cache

IE6, IE7 is sync when serving content from cache.
We want consistent api, so we have to use setTimeout to make it async.
feat($browser.xhr): add timeout option to abort request

Timeouted request responds internal status code -1, which should be normalized
into 0 by $xhr.
feat($cacheFactory): add general purpose $cacheFactory service
feat($http): new $http service, removing $xhr.*

Features:
- aborting requests
- more flexible callbacks (per status code)
- custom request headers (per request)
- access to response headers
- custom transform functions (both request, response)
- caching
- shortcut methods (get, head, post, put, delete, patch, jsonp)
- exposing pendingCount()
- setting timeout
Breaks Renaming $xhr to $http
Breaks Takes one parameter now - configuration object
Breaks $xhr.cache removed - use configuration cache: true instead
Breaks $xhr.error, $xhr.bulk removed
Breaks Callback functions get parameters: response, status, headers
Closes #38
Closes #80
Closes #180
Closes #299
Closes #342
Closes #395
Closes #413
Closes #414
Closes #507
feat(mocks.$httpBackend): add $httpBackend mock

$httpBackend mock allows:
- expecting (asserting) requests
- stubbing (responding without asserting)

Add empty $httpBackend service (currently just wrapper for $browser.xhr)
feat($templateCache): add $templateCache - shared by ng:include, ng:view
feat(mocks.$browser): add simple addJs() method into $browser mock
feat($httpBackend): extract $browser.xhr into separate service

- remove whole $browser.xhr stuff
- remove whole mock $browser.xhr stuff
- add $httpBackend service + migrate unit tests from $browser
- add temporary API to access $browser's outstandingRequests count
feat($http): expose pendingRequests and configuration object

- $http.pendingRequests is now an array of pending requests
- each request (its future object) has public property configuration
fix($http): allow multiple json vulnerability prefixes

We strip out both:
)]}',
)]}'
fix($resource): to work with $http, $httpBackend services

Breaks Disabling $resource caching for the moment.
refactor($http): change callback matching mechanism
fix($http): add .send() alias for .retry() to get better stack trace on error