tighten validation on client gets

This is corresponding origin change for: https://github.com/GoogleCloudPlatform/kubernetes/pull/2864

Currently, client Get calls that are missing names end up building a URL that hits the list API, but attempt to cast that resource list into a resource.  That produces an error message that looks like this: 
```
data of kind '<Resource>List', obj of type '<Resource>'
```

The cli protects you making such a call, but direct client API callers can still make the mistake. Even though it is caller error, the error message could be more obvious.

@derekwaynecarr you reviewed the kubernetes change.  This is just the matching one.
Pop quiz! :)

1.  Tweak .Path in upstream to disallow "".  It's non-contentious and very quick to do.
2.  Rebase kubernetes.
3.  Close this pull request and live with a less than perfect error message until there are ResourceName and Name methods.  That limits throw away code that turns into cruft in our code base that no one will remember to pull out.