ipro: whitelist a few contenttypes that we should record and cache

This prevents caching of html in the IPRO flow. More accurately,
it make sure that only contenttypes that are applicable will be
cached and treated as such. Also fixes leaking recorders for
aborted responses & incrementing the failure statistics for them.

Modification to (Ngx)InPlaceResourceRecorder:
- Adjust the interface to be able to bail out as soon as the
  decision can be made that IPRO cannot be applied. This prevents
  having to buffer a lot of responses
- Performs a sanity check on the content length received in the
  response headers (if any).
- Drops the separate Fail() method, adds completed arg. to Done()
  I think that makes the interface more consistent with other flows.