Minor cleanup in array_adaptor.
Factored out Ordinal from RangeNd. Ordinal is in charge of computing ordinal values. It also knows whether ordinal map is dense or not.
transpose->permute (although this differs from NumPy … permute is correct).
Reimplemented permute without NDIterator. Shows that NDIterator is a special case of a more general concept: coiterator (or co-Range).