Open
Description
In #2439 we added the MetadataTable as the superclass of tables that have a metadata column.
However, much of the functionality around dealing with things that do/don't have metadata is distributed around the code with conditionals.
Update the code such that things to do with metadata are implemented in the MetadataTable class and everything else is done in the BaseTable class. We shouldn't be doing run-time checks for the existence of metadata.