Container manifests can define docker registry

- Allows for each image to be pulled from a custom docker registry
- ContainerManifest can specify authentication for a private registry
- No breaking changes
Any reason why we want pass-by-value instead of pass-by-ref?