Add external cartridge support to model

Ensure that imported downloadable cart manifests make it all the way
to the component creation.
Decorate some objects with more metadata.
Allow cartridges to be retrieved by id