Yet more non-controversial fixes from #2277

Fixing namespace handling + kubectl describe refactor
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.