More efficient (stable) sort of lists
* (Reverse-) Sorted runs are mostly processed in linear time;
* Calls to the :key function are cached;
* Base cases now include specialised sorts for lists of
length 3 and shorter.
* Minimal test case for stable sorting.