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
This is the version dependent code today - my naive implementation is wrapper with this being the internal core version, and the wrapper dealing with extensions.  Hadn't got to that yet.  The thing is that latest.InterfacesFor() is required to make this work, so the refactor to make that generic *should* happen eventually, but doesn't necessarily have to do so now.  Up to you.