- Don't omit the `_T` typevar in `ordering_list` and
`OrderingList.ordering_func``; type checkers need to understand the
relationship between the `OrderingList` instance and the ordering
function connected to it.
- The ordering function can return _any_ value, not just integers
- The `ordering_attr` argument to `OrderingList` is not optional
- Update list methods to accept the same signature as the overridden
methods, including `SupportsIndex` instead of `int`, an iterable of
`_T` when using `__setitem__` with a slice (and not just sequences)
and converting the index value to an integer before passing it to the
`ordering_func` callable.
- Update `__setitem__` to _not_ attempt to handle slice objects as
handling all edge cases of slice length and iterable length is very
tricky and most use of `OrderingList` and slices is handled by
the SQLAlchemy collections instrumentation anyway.
- Remove the `__setslice__` and `__delslice__` methods, which were
deprecated in Python 2.6 and removed in Python 3.0.