Define ComponentPlugin API type

Just writing down how I think plugins should get registered with the system. Was thinking it'd be nice to do the event thing as a plugin.
Delegated storage is interesting, but it assumes that all resources and access patterns can be summarized this way.  It may mean that if you delete the component plugin all that data gets lost, which works well for small plugins but is scary for large plugins. I

As a short term path I like "deal with, preferably by reusing lots of code from Kubernetes and talking to the same backend, or run your own backend".  The next step seems to be to have a storage backend for your type that looks like delegated storage.  but could be longer.