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.