add unsigned version of Vector3
support non-square elements in regular mesh generation
get a dimension from an element type
reorganized the options to support non-square elements