reworked ListUtils.partition