native-fetcher-ka: save state

- make it use keepalive by adding the appropriate request header
- make it pass the system tests.
- fixes connections getting reused while they are servicing other requests:
  remove connection from the pool of available connections for keepalive when applicable
- disable keepalive in more appropriate situations
- fix 0 bytes response body edge case (needs checking for correctness)