Yet more non-controversial fixes from #2277

Fixing namespace handling + kubectl describe refactor
We have implementations of Describe in our repo that don't use *client.Client because they implement resources that Kubernetes doesn't.  I.e. we have a DeploymentConfig, Project, Build, Image resource that we want to have describers for, but which *client.Client doesn't make any sense for.  We use the factory method to instantiate describers, and describe operates on a resource.

----- Original Message -----
> > @@ -38,29 +38,13 @@ type Describer interface {
> >  func DescriberFor(kind string, c *client.Client) (Describer, bool) {
> >  	switch kind {
> >  	case "Pod":
> > -		return &PodDescriber{
> 
> I thought the whole point of Describe is that it knows something about the
> objects it is describing. That seems fundamentally incompatible with being
> generic.
> 
> It should take a client.Interface, though, not a *client.Client.
> 
> I could see us making a client method that's like
> "UnknownResource(namespace).{List|Get|Create|Update|Delete}()", but that
> doesn't seems useful for Describe.
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/2367/files#r20392046