Define a mapping between REST resource name and kind/apiVersion

Allows clients to abstractly map user input to generic resource
paths as per docs/api-conventions.md

Extracted from #2000 and supports #1958
Also, I added Kind in a follow on pull but didn't want to back port it here.  So it would be Kind, APIVersion, and Resource.

----- Original Message -----
> It was just <resourceType> here, assuming that RESTClient is responsible for
> encapsulating a server, prefix, and version.  Will add comment.
> 
> I was actually going to add a Resource and Name method to client.Request to
> make this consistent.  In this case Resource would be very similar to Name,
> Kind, etc where it's a known type that is consistent elsewhere.
> 
> ----- Original Message -----
> > > +	Name(obj runtime.Object) (string, error)
> > > +	SetName(obj runtime.Object, name string) error
> > > +
> > > +	UID(obj runtime.Object) (string, error)
> > > +	SetUID(obj runtime.Object, uid string) error
> > > +
> > > +	SelfLink(obj runtime.Object) (string, error)
> > > +	SetSelfLink(obj runtime.Object, selfLink string) error
> > > +
> > > +	runtime.ResourceVersioner
> > > +}
> > > +
> > > +// RESTMapping contains the information needed to deal with objects of a
> > > specific
> > > +// resource and kind in a RESTful manner.
> > > +type RESTMapping struct {
> > > +	Resource   string
> > 
> > RESTPath? RESTCollectionPath? Also can you add a comment explaining how
> > much
> > of the path one can expect to see here? Is it /api/v1betaX/resourcetype/?
> > or
> > just resourcetype?
> > 
> > ---
> > Reply to this email directly or view it on GitHub:
> > https://github.com/GoogleCloudPlatform/kubernetes/pull/2059/files#r19769738
>