Make DataVersionAndKind public on runtime.Scheme

Add a new ObjectTyper interface that clients can depend on for
converting between data and object to version and kind.
Merge pull request #2055 from smarterclayton/define_an_interface_for_typing

Make DataVersionAndKind public on runtime.Scheme