SortedSet#delete does not lose the set's order when deleting the last item

If a SortedSet has a custom order, it should be maintained *even when* the set
is emptied -- because subsequently, more items might be added again.
SortedSet#[] does not lose custom sort order when passed an empty range or length
Refactoring of SortedSet

Now each AVLNode holds its own 'comparator' block, rather than the SortedSet
passing it down each time it makes a call. This seems to make for better and
more readable code.