native fetcher: Support http keep-alive

Based on @dinic his work, add keep-alive support for the native fetcher.
Adds a new option, usable at the http{} level in configuration:

pagespeed NativeFetcherMaxKeepaliveRequests 50;

The default value is 100 (aligned to nginx). Setting the value to 1 turns off
keep-alive requests altogether).

Most notable changes:
- Request keep-alive by adding the appropriate request header
- 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
- Response parsing fixes
- Remove connections that timeout from the k.a. pool
- Add a few sanity (D)CHECKS
- Emit debug messages for traceability
- Fix for ignoring ipv6 addresses returned from dns queries when ipv6 is enabled.
- Bump the fetch timeout in test configuration to deflake tests that require dns
  lookups (which will be done via 8.8.8.8 currently for the native fetcher)
Merge pull request #790 from pagespeed/oschaaf-trunk-tracking-native-fetcher-keepalive

native fetcher: Support http keep-alive
connection-read-handler: prevent processing stale read events

We don't want to hear about read events from our base fetch
connection anymore when the base fetch handler indicated it was
done.

One concrete problem this solved for me was that SPDY combined with
IPRO would segfault and/or pass on 5xx/404 responses from ipro lookup
fetches to the browser, next to alerts about r->count being zero
in nginx's error.log

Might fix https://github.com/pagespeed/ngx_pagespeed/issues/788
Fixes https://github.com/pagespeed/ngx_pagespeed/issues/792
single-pagespeed-pipe: saving state

Functionality is seemingly working, but this change needs more
testing to prove it. After that some refactoring would be good.
save state