fix($httpBackend): don't send empty string bodies

The `XMLHttpRequest.send` spec defines different semantics for `null`
than for an empty String: an empty String should be sent with a
`Content-Type` of `text/plain`, whereas `null` should have no
`Content-Type` header set.

Closes #2149
fix($animator): avoid completing the animation asynchronously unless CSS transtiions/animations are present

Closes #4023
Closes #3940