Break into multiple files, begin refactoring
Refactor image types around property dicts; add tests
Improve support of spatial dimensions

This switches storageorder -> spatialorder, which cleans up a lot of
things. This also greatly expands the set of supported operations,
including permutedims().