Send cache headers with 404 responses

The four_oh_four code is using the [http.IncomingMessage](http://nodejs.org/api/http.html#http_message_headers) API to get/set headers, but it should be using the [http.ServerResponse](http://nodejs.org/api/http.html#http_response_writehead_statuscode_reasonphrase_headers) API to get/set headers for the response.

Added a test to verify this behaviour.