make Build and App classes act like dicts
This is a long overdue merge request for something that @mvdan and I have discussed in IRC quite a bit. Basically the idea is that Python works very well with dictionaries, and the
Build classes were very close to Python
dicts. So this makes them actual subclasses of
dict so they can be used just like a
dict. Then using libraries to work with YAML, JSON, etc. becomes trivial since they freely exchange between
dicts and the data formats.
This is required for the new index-v1.json data format as well as making a modern build metadata format in YAML.