Given an ExactSizedIterator and a compile time known size (N), we
should be able to generate stack allocated arrays of the contents of
an iterator as long as the iterator has at least the required size.
I wanted to abstract ordered to any size instead of just binary
tuples - but tuples have a strange issue where you can't be generic
about them past like a limit of 12. With this setup, ordered takes
ownership of some fixed array, sorts it, then returns it back.
modes:pair and modes:single have been refactored to utilise this new
form of ordered - it's basically the exact same in these cases.