POC: [NX-496] Component metadata api

https://issues.sonatype.org/browse/NX-496
Related to one-to-many relations, it's worth noting that multiple ContentMetadata items may exist for a given component because some formats (maven) can have many files associated with one component. So each ContentMetadata really represents a particular file part of a component in the abstract, and the blob represents an actual stored copy of a file at a node.