Sniff headers for forwarded-proto to detect clients requested protocol

This is useful on heroku where dynos and the load balancer always communicate over http regardless of what the client requested. Without this the client will be sent into an infinite loop