POC: [NX-496] Component metadata api

https://issues.sonatype.org/browse/NX-496
I'd introduce a `Key` type rather than using plain String here. In my experience, it not only makes API more readable, but also IDEs tend to help better, than with methods having signatures that accept bunch of strings.... also, the intent is then clear: this is key, not "just a string".

Example:
https://github.com/sonatype/nexus-pro/blob/master/plugins/clm/nexus-staging-plugin/src/main/java/com/sonatype/nexus/staging/model/Handle.java#L25