Provides methods to sort arrays of objects. Sorting requires working memory and this class allows that memory to be reused to
avoid allocation. The sorting is otherwise identical to the Arrays.sort methods (uses timsort).
Note that sorting primitive arrays with the Arrays.sort methods does not allocate memory (unless sorting large arrays of char,
short, or byte).