Permute

Member functions for an array that allow one to permute, roll, and transpose axes.
I think the names need a reference to dims or axis or something, because these operations make sense on just the data itself applied to the first dimension. In STL, the algorithm is rotate (http://en.cppreference.com/w/cpp/algorithm/rotate).