set Cache-Control and Expires header even when not-modified (#8757)

Usually first a resource is served with the lower code block. this
provides cache-control, expires and last-modification headers to the
browser. But when a not-modified response was served, these headers
were missing. This effectively caused the caching to no longer work once
the not-modified responses are sent out.

Change-Id: I9b1f0cacc91734f88bb0384872da0d426d4b5fe0