Add option to output batcache debug info in a x-batcache HTTP header
Set cached page generation time to request start if possible

When we use `time()` as the cached page generation time after it's been
generated it's possible for the generation time to be a second or more after
the page request time. The cached response generation time is used for the HTTP
`last-modified` header so when this happens it's set to a date-time that's
after the `date` HTTP header. (Resource generated in future issue.)

This is non-compliant and may cause browsers and revers proxies to not cache
the resource properly.
Make 304 not modified responses more compliant

RFC 2616 specifies that the 304 response must continue sending caching headers
and any other headers it wishes to update. Specificaly:

> This rule does not allow an origin server to use a 304 (Not Modified) or a 206
> (Partial Content) response to entirely delete a header that it had provided
> with a previous response.