Make models be layers of DataSets

I ported part of Agentscript's DataSet along with the necessary subset of Util. I didn't port anything that had to do with images, canvases, patches, and so on. *A lot of it is untested.* I plan to port the Raster class from ecostem-sand to this and will be testing resampling and interpolation.

I replaced typed arrays in models with DataSets wrapping typed arrays.

I added some more get/set utility functions to DataSet.

I added some more helpers to BaseModel having to do with transfering data between layers or between indices within a layer.

I ported the models to take into account these changes.
Yeah we should. The stuff is kinda tentative btw. I'm basically trying to find good ways/abstractions to work with OofA vs AofO. You should think about this. I think the "transferField" and "transferIndex" functions for example are pretty useful and clean up the model a lot, since it's common that you transfer values from one index to another or from one field to another, in ABM.