Some algorithms to sort any COLLECTION, using a given order relation
in deferred methods lt, gt, lte and gte.
Elements are sorted using increasing order: small elements
at the beginning of the collection, large at the end (decreasing
order is implemented by class REVERSE_COLLECTION_SORTER). Note that
"small" means "a is smaller than b" when "lt (a, b)", no matter what
lt is.