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.
Merge pull request #468 from rleigh-dundee/ibasemetadata

scifio: Add BaseMetadata