image-layout: Require blobs/refs to exist but allow them to be empty
image-layout: Require blobs/refs to exist but allow them to be empty

The previous wording ("has" and "contains") was not clear enough to
avoid confusion [1].  I consider this PR to be a spec clarification,
and not a spec change, but others will probably disagree [2] (which is
why I think we need the clarification).

If you cared about running images from the layout, you'd need "and
there MUST be at least one unpackable ref" language.  And then you
have to match the oci-layout version with the media types that were
unpackable when it was current (or is validity in the eye of the
validator?)... This is a bowl that I do not want to fathom ;).

Maybe folks are just using an image-layout to ship some missing blobs
(and have refs empty).  I don't see any incentive to image-authors to
publish ref-less blobs and then pretend they are runnable, so I don't
see a need to get into the business of restricting refs.

Or maybe they're shipping some missing refs (and have blobs empty).
Maybe they expect all blobs to be fetched via the descriptor's 'urls'.
Those sound fine to me too, so I don't think we should be in the
business of restricting blobs (and we already have "The blobs
directory MAY be missing referenced blobs...").

I am fine with validation code *warning* users about either case
(e.g. "this image-layout has no refs" or "refs a, b, and c require
blobs which are not stored in this image-layout"), but I don't think
the spec should block either of those.

[1]: https://github.com/opencontainers/image-spec/issues/287
[2]: https://github.com/opencontainers/image-tools/pull/83#issuecomment-260841249

Signed-off-by: W. Trevor King <f75897670c17327c42ab201733fb8a81ff9f4c34@tremily.us>

vbatts/oci-image-spec,jonboulle/image-spec,vbatts/oci-image-spec,jonboulle/image-spec,opencontainers/image-spec,opencontainers/image-spec,mattspencer-arm/image-spec,mattspencer-arm/image-spec