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.
Have we applied a convention for when members are functions vs interfaces?  I see "*Func" in various parts of golang, but I'm not sure if it's consistent.