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.
Don't use `'` around `{!r}`, since the latter will already add quotes to strings. Also, you could just do something like `"AssetMetadata{!r}".format(tuple(self.asset_id, ...))"`.