Be more RFC2616 compliant, by keeping Date header as given from the
backend. Set it on the object if missing.

Previously we would add an explicit Date header on each response with
the time and date of the response, overwriting any Date header on the
object that came from the backend.

Now we will add a Date header if the backend didn't supply one just
before vcl_backend_response() is run, and not add any Date headers for
the replies.

This change means Date headers sent by Varnish is approximately the
time and date this object was generated by the backend, and not the
current date and time.
Timestamp "Process" after vcl_deliver has been run.

The EXP_Touch and the Age header will be based off the last timestamp
taken. This can be slightly inaccurate, but saves us from having to do
another timestamp for them.

Fixes: #1475
Use the time we get the content from the backend as the origin time of objects.

Before, the origin time for the objects was defined as the time we
received the full request from the client that initiated the
fetch. Now we use the time we received the response headers from the
backend.
Add Date and Server headers also on backend error objects
Add test case to make sure we always emit Date headers