REVIEW: [NX-448] Component Storage

https://issues.sonatype.org/browse/NX-448

Goal for this iteration is an interface + initial impl that uses a BlobStore + RecordStore. 
This is now an anaemic data-type with only one member (id) which makes me wonder whether it's pulling its weight. We could consider dropping this type and just use `ComponentId` in its place in the storage CRUD methods.