STL-like generic two dimensional array, with both stack allocated and heap allocated variants.