misc-changes: Save state

- Header handling: Allow Server: override (html transform, need to
  test other flows).
- Header handling / error handling: fall back to nginx's response
  generation for resources that return an error status. E.g., if
  a .pagespeed. resource results in a 404, return nginx's default
  response for that. This also allows header modules to operate on those
  responses.
- IPRO Flow fixes for double lookups (r->internal, etc)
- Make request context persist throughout the request lifetime in
  a hacky way to prevent double work and simplify (or don't backstab)
  when internal redirects and named locations are involved.
- Only create a base fetch when we'll actually use it, so we won't generate
  unnessecary events upon receiving HandleDone(false) when we dispose of it
  again.
- Only initiate a property cache lookup when we'll use it. Double check.
- I suspect that in case of internal redirects (/ -> index.html) PSOL
  would be misinformed, and operate assuming the rewritten url. This
  fixes that (need to confirm if this originally was a problem).
- Get rid of write_pending & fetch_done flags on the request context.
  Assume that having ctx->base_fetch set means upcoming data to send
  to the output for simplicity. This also means we'll release the
  base fetch earlier which seems like a good idea to me.