Natural Sort

The "natural" sort is based on an algorithm by Martin Pool which has spread to various other languages and attempts to mimic how humans would naturally sort strings such as "1 Main St", "10 Main St", "2 Main St". The "natural" thing would be to sort "10 Main St" after "2 Main St", and treat 2 contiguous spaces as one, minimize importance of punctuation, etc., instead of just using the raw byte collating sequence.

The A-Shell implementation deviates slightly from the original version by Martin Pool in that it supports the LDF collating sequence, if available, and doesn't require trailing nulls on the strings.

Natural sort keys should always be of type S (String).