Make overlap_slices, etc., good for arbitrary number of dimensions

@astrofrog - here is a version of `array_utils` that allows arbitrary dimensions. Note that it does imply an API change, in that the coordinates in the centre positions have to be given in the same order as the same (i.e., `y_center, x_center` for 2-d arrays). I think this is worth it...

I didn't have time to add tests for higher dimensions.