wget.callbacks.httploop_proceed_p can script local filenames

by returning a table (implies PROCEED) with:

  * local_filename="string"
    this will override extensions set by -E unless:

  * override_fiilename=0
    is set

example:

wget.callbacks.httploop_proceed_p = function(url, http_stat)
  return {
    local_file="foobar/"..http_stat.local_file.."silly_ext",
    override_filename=1
  }
end
Wget's source code tends to reference `xstrdup` instead of `strdup`.  `xstrdup` appears to perform additional out-of-memory checks, so it's probably worth using it for that and for conformance to the rest of the codebase.