Improve properties and define more utility functions

One key addition is to look for a property called "spatialproperties" which can be set to ensure that algorithms needing to manipulate spatial dimensions can do the right thing.
Implement sliceim
Small I/O fixes