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 don't believe we need to do that yet. If an error occurred, we were unable to get a response. That's the only thing we care about for the time being.