proxy mode, pt 2

The ReverseProxy code from the standard library doesn't actually
give us the control that we want. Pull it down and rip out what
we don't need, adding tests in the process.
i do not think StatusBadGateWay is suitable here:
```
The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request.
```

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html