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. 
It does look a little odd. I started out just following the pattern set out by the BlobId class, to be consistent. Do you think BlobId.asUniqueString() would be an improvement? @mrprescott