Initial version of artifact definition validator.

@destijl for code review.

CL is ready for review but please do not merge with upstream, just yet.
docstring:

These stub classes allow us to validate artifact definitions by instantiating these objects. Users should subclass to implement actual file, registry etc. collection.