Make request.host prefer HTTP_X_FORWARDED_HOST if present

The `X-Forwarded-Host` HTTP request header is often set by proxies. It is useful because it tells the app the host that the client requested from the proxy server, which might be different from the `"Host:"` header that was received by the origin server, like if the proxy proxies to a virtual host on the origin server.