Removed publicly visible M typedefs from Array, for neatness. Added further unit tests for metaprogramming