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.
@cpennington I regretted using a dict for blocks b/c mongo can't search inside that dict easily but if it was an array it can. You can write a query to find all courses with the internal_name of x by saying `.find({'assets.internal_name': x})` whereas if the array was a whose keys were the path, you couldn't.