new Images and Series unit tests

Mostly Just A Bunch of Tests.

Two small bug fixes in here uncovered during testing:
* The images `subsample()` method had an off-by-one error in the dims attribute of the returned Images object when the subsampling factor did not evenly divide the image dimension.
* The images `subtract()` method did not work when numpy arrays were passed, due to a bad equality test between a Dimensions object and a numpy shape tuple.
I'm a little surprised this works as is. IYRC, we identified an issue where the max project + sorting caused errors because two jobs are triggered (one to collect the keys, one for the values, for the driver-side sort), and the sort order after the two shuffles + collects is potentially different. The fix, which we still need to test for scalability, is collecting keys and values together when sorting. But without that, I expected this to fail...