We have two flavors of plugin for the C++ indexer (IndexerLibrarySupport and MetadataSupport). These have different lifetimes and are registered in different ways. We should normalize this.
OpenPublicRework plugin support
Requirement: plugins should have a chance to initialize *after* a CU is typechecked. This is so they can check to see whether they apply to the CU in question; for example, the text proto plugin should only enable itself if it can find proto2::contrib::parse_proto::internal::ParseProtoHelper.