native-fetcher: keepalive handling changes

- 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
- Style fixes, renames
- Remove unused default value in SetKeepAlive() arg
- Remove connections that timeout from the k.a. pool
- Add a few checks for sanity
- Add a few todo's for more sanity checks & fixes
- Improve behaviour when parsing over multiple read() calls with different states
- Increase 5000ms timeout with hard-coding to test another timer failure
- Emit debug messages for traceability
- Fix a few compiler warnings

Note that this does not reformat the indenting within the net_instaweb namespace
of ngx_fetch.cc, as that would make it very hard to assess what has changes from the diff.
Also, the 'PageSpeed CSS loaded in fallback mode is always chunked' tests must be disabled
when testing (those currently fail on master without this change as well).