scifio: Add BaseMetadata

Note: Depends upon https://github.com/openmicroscopy/bioformats/pull/427; only the last commit in this PR is actually in this PR.  If needed, I can rebase it after #427 is merged.

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.