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 any of these fields optional? Or are they all expected to be in every mongo document? (If there are optional ones, then you might be better off using `.get()` with a default, rather than `[]`.