scifio: Add BaseMetadata

BaseMetadata is a base interface for MetadataStore and
MetadataRetrieve, giving the following hierarchy:

        BaseMetadata
           /    \
MetadataStore  MetadataRetrieve
           \    /
         IMetadata

The intention here is to have base type which can be used to
specialise containers for that type, which can contain instances
of both MetadataStore and MetadataRetrieve, principally
AggregateMeta.