A version of reshape() that takes extents for dimensions

reshape(expr, extents[n1][n2][n3], extents[0][2])
is equivalent to
reshape(expr, make_array<size_t>(n1, n2, n3), make_array<size_t>(0, 2))