Rework client.Interface

Fixes #1708 

This is a WIP proposal for how we could have an alternate client pattern.

Goals:

1. Keep client stateless
2. Make client operate in a Noun -> Verb style
3. Make code clear when client namespace switches

Sample Code:
```
client := ...

// list pods across all namespaces
pods, err := client.Pods("*").List(selector)
// list pods in the default namespace
pods, err := client.Pods("default").List(selector)
// create a pod in default namespace
pod, err := client.Pods("default").Create(pod)

// work with services
services, err := client.Services("*").List(selector)
services, err := client.Services("default").List(selector)
...

// work with minions
minions, err := client.Minions().List()
```

Please provide feedback, as I will not make rest of this change until we agree on pattern.
Nope

Sent from my iPhone

> On Oct 23, 2014, at 6:18 PM, Daniel Smith <notifications@github.com> wrote:
> 
> In pkg/client/client.go:
> 
> >  }
> >  
> > -// ReplicationControllerInterface has methods to work with ReplicationController resources.
> > -type ReplicationControllerInterface interface {
> > -	ListReplicationControllers(ctx api.Context, selector labels.Selector) (*api.ReplicationControllerList, error)
> > -	GetReplicationController(ctx api.Context, id string) (*api.ReplicationController, error)
> > -	CreateReplicationController(ctx api.Context, ctrl *api.ReplicationController) (*api.ReplicationController, error)
> > -	UpdateReplicationController(ctx api.Context, ctrl *api.ReplicationController) (*api.ReplicationController, error)
> > -	DeleteReplicationController(ctx api.Context, id string) error
> > -	WatchReplicationControllers(ctx api.Context, label, field labels.Selector, resourceVersion string) (watch.Interface, error)
> > +func (c *Client) Minions() MinionInterface {
> Are minions not namespaced yet?
> 
> —
> Reply to this email directly or view it on GitHub.