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.
One more nit on this: you're probably going to be better w/ something like `AssetMetadata({!r}, {!r}, ...)`, so that you get the reprs of the arguments, rather than their string values (`__repr__` vs `__str__`)