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
Yeah, tried to spec it as simple as possible to reflect that complexity.

----- Original Message -----
> > +			m.reverse[meta] = plural
> > +		}
> > +	}
> > +}
> > +
> > +// kindToResource converts Kind to a resource name.
> > +func kindToResource(kind string, mixedCase bool) (plural, singular string)
> > {
> > +	if mixedCase {
> > +		// Legacy support for mixed case names
> > +		singular = strings.ToLower(kind[:1]) + kind[1:]
> > +	} else {
> > +		singular = strings.ToLower(kind)
> > +	}
> > +	if !strings.HasSuffix(singular, "s") {
> > +		plural = singular + "s"
> > +	} else {
> 
> @fabianofranz I think for now all cases are satisfied by using +'s' prefix so
> I don't think we need something complex for this task.
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/2059/files#r19734915