This module provides a radix sort for a subclass of unboxed arrays. The
radix class gives information on
* the number of passes needed for the data type

the size of the auxiliary arrays

how to compute the pass-k radix of a value

Radix sort is not a comparison sort, so it is able to achieve O(n) run
time, though it also uses O(n) auxiliary space. In addition, there is a
constant space overhead of 2*size*sizeOf(Int) for the sort, so it is not
advisable to use this sort for large numbers of very small arrays.

A standard example (upon which one could base their own Radix instance)
is Word32:

Radix sorts an array using custom radix information
requires the number of passes to fully sort the array,
the size of of auxiliary arrays necessary (should be
one greater than the maximum value returned by the radix
function), and a radix function, which takes the pass
and an element, and returns the relevant radix.