A shape class for ShapedImageNeighborhoodRange and ShapedNeighborhoodIterator

Thanks @dzenanz for merging the patch, ENH: Added class to create offsets for a hyperrectangular neighborhood shape!

I think this could pave the way for the topological connectivity shape class, that Pablo and I have been discussing at itk::NeighborhoodRange: a new class for efficient modern C++ style iteration

This class should support generating the offsets for N-connected neighborhoods: 4- and 8-connected neighborhoods in 2-D, 6-, 18-, and 26-connected neighborhoods in 3-D, etc.

@phcerdan Would it be OK to you if I would simply name the shape class ConnectedImageNeighborhoodShape, with the initial patch set? I find something like “TopologicalConnectivityImageNeighborhoodShape” a bit too verbose. And I think it’s basically just a connected neighborhood: a neighborhood of pixels that are connected to one specific center pixel. What do you think?