WIP: Component Metadata, Take 2

Re-defining component metadata based on move to orientdb and feedback from POC PR #579
Yep, I'm assuming orientdb comes first and does most of this, and this stuff can be omitted from this branch.