WIP: 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.
@lavalamp @derekwaynecarr @smarterclayton I would favor the separate interface for the namespacing calls because then you don't have to pull in the full client.Interface if you only need a single resource.  As an example, say my controller only needs to work with pods.  I can code to PodsInterface and PodInterface instead of client.Interface.  Thoughts?