fix(compile): should not leak memory when there are top level empty text nodes

The change to prevent <span> elements being wrapped around empty text nodes caused these empty text nodes to have scopes and controllers attached, through jqLite.data() calls, which led to memory leaks and errors in IE8.
Now we exclude all but document nodes and elements from having jqLite.data() set both in the compiler and in ng-view.

Fixes: #1968 and #1876
fix(ngClass): keep track of old ngClass value manually

ngClassWatchAction, when called as a $watch function, gets the wrong old
value after it has been invoked previously due to observation of the
interpolated class attribute. As a result it doesn't remove classes
properly. Keeping track of the old value manually seems to fix this.

Closes #1637
fix($compile): sanitize values bound to a[href]
docs(changelog): add release notes for 1.0.5 and 1.1.3
chore(release): cut 1.1.3 radioactive-gargle release
docs(changelog): fix release notes
chore(release): start 1.1.4 quantum-manipulation iteration
fix($httpBackend): prevent DOM err due to dereferencing .responseText

If responseType is defined and the request fails for one reason or another
the .response property returned falsy value which caused dereferencing of
.responseText. If the responseType was a blob or document then an error
was thrown.

To prevent this, I'm checking for responseType first and based on that
dereferencing .response or .responseText.

We need to keep on checking .responseText because that's the original XHR
response api that is still needed for IE8 and 9.

Closes #1922
fix($compile): handle elements with no childNodes property

see the test for more details
chore(nodeserver): fix log message for 301 response
fix($compile): whitelist file:// in url sanitization
feat($q): $q.all() now accepts hash

When waiting for several promises at once, it is often desirable to
have them by name, not just by index in array.

Example of this kind of interface already implemented would be a
$routeProvider.when(url, {resolve: <hash of promises>}), where
resources/promises are given by names, and then results accessed
by names in controller.
refactor($route): use $q#all hash signature 2 simplify 'resolve' impl
docs(dateFilter): properly specify range for the Z format modifier

Closes #1533