Allow the apiserver to support raw URLs

Supports handling paths like "/foo/bar%2Fbaz", which Go 1.X does not correctly handle according to RFC
(https://code.google.com/p/go/issues/detail?id=3659). A concrete case for this is REST resources whose ID contains slashes which could include Docker repository/registry names, URLs, and path segments.

Broken into three pieces for easier review.
Seems odd to me compared to just appending in the line above-- does client.Do() call String() on request.URL?