Image registration

This PR adds support for performing image registration on an `Images` object. It is part of the new `improcessing` package, which is designed for image processing routines that are more complex than the simple filtering operations available directly as methods on an `Images` object. The `Register` class is designed as an abstract method that handles distribution; subclasses, such as the initial example `CrossCorr`, implement methods for estimating and applying transformations. 

Key features
- Simple pattern for adding new registration methods
- Helper method for computing a reference image / volume
- Supports both applying the transformation to the images / volumes, or directly returning the transformation parameters

Based on a prototype developed by @d-v-b

@industrial-sloth take a look and let me know what you think?
How's this for pedantic: I'd prefer "imgprocessing" over "improcessing". I tend to chunk "improcessing" as "imp-rocessing", which makes no sense; whereas I think most people would immediately read "imgprocessing" as "img-processing".