Avoid creating too many closures in tryAdvance().  Use a member of the spliterator as a cache and go back to having be a consumer.