Proposal for solving api plugability

* In the conversion package, expose Src/Dest struct tags to conversionFuncs via the Scope, and the source/dest versions.
* In runtime, add "RawExtension" which just stores raw JSON (or yaml?) for deferred unpacking.
* In runtime, add global named Schemes.
* In runtime, add to the DefaultScheme conversionFuncs which convert between RawExtension and EmbeddedObject. They use a struct tag on the *internal* structure to determine which scheme to use, defaulting to DefaultScheme.

I think this is easy, readable, extensible, and will emit the JSON that we want.
Maybe `interface{}` instead of the map?  Allows people to pass structs