Use separate base classes for intrinsic and extrinsic mappings
detect_metadata_files and extrinsic_metadata_formats (respectively) are somewhat mutually exclusive, so it does not make much sense to have them in the same class and MAPPINGS dict
Partially addresses comments in !333 (closed)
Migrated from D8072 (view on Phabricator)