Phase 1 of adding asset metadata saving to old Mongo

@dmitchell @cpennington Here's the first phase of my work. Look at the tests to see what is implemented and what isn't yet.
Are two `AssetMetadata`s really equal iff they're talking about the same asset? I'm surprised that the rest of the data doesn't come into play during equality checks. Where is this equality checking used?