Multi type plugins

Adds the ability to index plugins under multiple classes to the plugin framework. Without this, indexing is based entirely on the `type` attribute. This prevented, for example, a subclassed `Command` and `OptionsPlugin` from being found both by the `CommandService` and `OptionsService` using the desired index queries.