POC: [NX-496] Component metadata api

https://issues.sonatype.org/browse/NX-496
Yes, MetadataStore<T> is really just a convenient metadatatype-specific handle on the service, so you don't have to keep specifying the same class for each CRUD/find method invocation. In the implementations, there's very little overhead to these...they're just an in-memory abstraction intended to make working with the API a little less chatty.