Introduce Resource/ResourceName/Prefix/Suffix options to RESTClient

RESTClient is an abstraction for simplifying access to resources that
follow the Kubernetes API pattern.  Currently, both Namespace and Path
are coupled, which means changes across versions is complex.  In general,
most access to resources should be to a resource collection (e.g.
"services") with a name (e.g. "foo"). Other constructs, like prefix sections
("watch") or proposed suffix sections ("/pods/foo/spec") only modify this
core pattern.

This commit removes the Path() helper from Request and introduces:

* Prefix(segments ...string) - segments that should go to the beginning of the path.
* Suffix(segments ...string) - segments that should go to the end of the path.
* Resource(string) - collection name, should be after prefix
* Namespace(string) - if specified, should be set after resource but before name
* ResourceName(string) - if specified, should be after namespace

Now, only Prefix and Suffix are order dependent (and with variadics, should be
simpler).  Resource, Namespace, and ResourceName may be specified in any order.

Path() has been removed to prevent downstream consumers of RESTClient from experiencing
behavior change.
Doh, I forgot proxy was a verb.  Yes.  I debated adding watch and proxy as custom verbs but did not.  


> On Dec 23, 2014, at 6:46 PM, Daniel Smith <notifications@github.com> wrote:
> 
> In cmd/e2e/e2e.go:
> 
> > @@ -343,7 +343,7 @@ func TestNetwork(c *client.Client) bool {
> >  		case "running":
> >  			glog.Infof("Attempt %v/%v: test still running", i, maxAttempts)
> >  		case "fail":
> > -			if body, err := c.Get().Path("proxy").Path("services").Path(svc.Name).Path("read").Do().Raw(); err != nil {
> > +			if body, err := c.Get().Prefix("proxy", "services", svc.Name, "read").Do().Raw(); err != nil {
> Maybe it will become clear as I read more, but shouldn't this be Prefix("proxy").Resource("services").Suffix(svc.Name, "read")?
> 
> —
> Reply to this email directly or view it on GitHub.
>