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.
What services do we want to provide to component plugins?

* URL redirects (which could be done by a L7 load balancer, such as nginx), e.g. to simplify discovery?
* Client authentication?
* Authorization checks?
* Quota / admission control?
* Storage?
* Special privileges with respect to other system objects?
* Logging and/or monitoring?
* CLI integration?
* UI integration?