CacheControl: Real fix for max_age and s_maxage

  * We must save the cache control directives related to max_age
    and s_maxage on disk and restore them on load.
  * I hope I don't introduce any regressions in this commit.

  + Non-author changes to origial patch:

  * As per upstream commit 5b1a11faa6dc9c6b7e8c5673c21c3b45a4ecd717
    the first hunk of the change to http.c has been altered so that
    it's compatible with upstream.

  * Trailing whitespace deleted.
io.c: Fix a ressource leak on error.
http_parse.c: fix a false memory leak.

  * just for the fun, but this should never occur.
  * add an assert for debug mode.

  + Non-author changes to origial patch:

  * Removed trailing whitespace.
event.c: Fix potential leak on error.

  * Try to restore pointers as they should be...
diskcache.c: Fix memory leak on error.

  * Reassign oldbuf to buff to free it on error.
diskcache.c: Fix a memory leak on failure.
config.c: Fix a memory leak on error [i].
config.c: Fix a memory leak on error [ii].
dns.c: Avoid a null dereference on error.
local.c: avoid a NULL dereference on error.
dns.c: check return value.
diskcache.c: check return value.
server.c: don't pass a negative value.
http_parse.c: if error, then return ...
io.c: By principle, don't use strcpy.

  * even if safe here, don't use it.
http.c: By principle, don't use strcpy.

  * even if safe here, don't use it.
diskcache.c: By principle, don't use strcpy.

  * even if safe here, don't use it.
  * use sizeof for static buffer size.
atom.c: By principle, don't use strcpy.

  * even if safe here, don't use it.
event.c: just to prevent warning.

  * under some systems sa_restorer is present.
  * set the struct to 0 so we don't care.
server.c: Fixing unused variable.

  * I'm not sure of the second part...
  * but calling httpServerAbort looks logical to me.