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.
Yes.

----- Original Message -----
> > @@ -51,6 +53,10 @@ func (c *buildConfigs) List(label, field
> > labels.Selector) (result *buildapi.Buil
> >  
> >  // Get returns information about a particular buildconfig and error if one
> >  occurs.
> >  func (c *buildConfigs) Get(name string) (result *buildapi.BuildConfig, err
> >  error) {
> > +	if len(name) == 0 {
> > +		return nil, errors.New("name is required parameter to Get")
> > +	}
> > +
> >  	result = &buildapi.BuildConfig{}
> >  	err =
> >  	c.r.Get().Namespace(c.ns).Path("buildConfigs").Path(name).Do().Into(result)
> 
> 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.
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/openshift/origin/pull/568/files#r21828287