RangeSet: Multidimensional RangeSet support (new RangeSetND class)

Created RangeSetND class to manage a matrix of RangeSet objects.
Folding of such objects is quite complex and time consuming.
A special optimization is provided when only one dimension is varying.

Signed-off-by: Aurelien Degremont <aurelien.degremont@cea.fr>
Signed-off-by: Stephane Thiell <stephane.thiell@cea.fr>
NodeSet: Multidimensional nodeset support

Added support of RangeSetND to NodeSet. Optimized NodeSet so that 1D
NodeSet objects are still using RangeSet.

Closes #92

Signed-off-by: Aurelien Degremont <aurelien.degremont@cea.fr>
Signed-off-by: Stephane Thiell <stephane.thiell@cea.fr>