Shallow copy requests

Go's http.StripPrefix, which is often used when serving static files, modifies the fields of the http.Request struct, to strip the prefix. This causes the logger to display the stripped url, not the correct full url. Thus, this patch makes a shallow copy of the http.Request struct, and then bases the log messages off that.