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
Maybe it will become clear as I read more of this PR, but I find it strange that Versions is passed to both calls.