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 see these distinctions as being about the sockets rather than the plugins.   APIserver should have a socket where you can add your own handler for certain REST resources, and it should also have places where you can provide implementations of specific features (VolumeSources, Authorizers, AdmissionControllers, etc).

Some plugins (chunks of code that is not part of APIserver or kubelet proper) may need to plug in to both kinds of sockets.
For example, maybe a GoogleAdmissionController plugin needs to implement both an "AdmissionController" interface that is called by APIserver, and it needs to add a new kind of /quota object to hold quota limits for users and related information.