Sorts table elements in a given order, in-place,
n is the length of the table.
comp is given,
then it must be a function that receives two table elements,
and returns true
when the first is less than the second
not comp(a[i+1],a[i]) will be true after the sort).
comp is not given,
then the standard Lua operator
< is used instead.
The sort algorithm is not stable;
that is, elements considered equal by the given order
may have their relative positions changed by the sort.