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
Should we maybe special case 204 and HEAD, and just set the value to undefined instead?

```js
if (!response.data && (config.method === 'HEAD' || response.status === 204) {
  delete resp.data; // or resp.data = undefined;
}
```

Because really, an empty JSON string is a programming error in other cases.

Up to you guys though