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.
Can we change this to `initWithUser:`?  `init:` is too close to the standard `init` for my liking.