embed the http.ResponseWriter into the response struct

this removes the need to write resp.Out.Header() and instead can be resp.Header(). Could cause breaking changes in user code.

The http.WriterHeader func has been renamed to WriteStatusCode to avoid a conflict with http.ResponseWriter.WriteHeader