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.
Yeah, I think that component vs compiled in plug in should largely be user choice.  Think the difference between a kernel module and compiling it into the kernel.  If it's only distributed as binary, that's not possible, but if it's source, it should be.