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.