POC: [NX-496] Component metadata api

https://issues.sonatype.org/browse/NX-496
Ok, this was again something I borrowed from the wiki. The idea is that the "identity" record is the primary one describing a component and is required. Everything else is "secondary" in the sense that it's not quite as first-class. Name suggestions welcome. Otherwise I'll beef up the javadocs to explain this better!