WIP: Component Metadata, Take 2

Re-defining component metadata based on move to orientdb and feedback from POC PR #579
I assume all of this is temporary until the orientdb branch is merged, as I'd expect to depend on nexus-orient to get all this instead of duplicating this.