First stab at adding MetadataManager

This is NOT ready to merge yet. I'll be adding implementation for the functions in the next couple of days.
This is another one where the default property setter should be fine—i.e. this method is not necessary.