Support for Map in model

Remaining to do:

* Refactor metal updates to allow multiple types of operation per statement
* Get list spec up to date with better set/map specs
* Refactor collections to use better metal update stuff
* Handle modify-then-load scenario