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.
I was thinking that the stored objects have independent lifetime from the plugin itself-- you'd have to explicitly delete them if you want them to go away.

Issue with reusing same backend, although I agree it's much simpler, is security. I guess if etcd let us put ACLs on directories we could do that? Hm. I think that may be my new favorite choice.