core::iter: Refactor iterators

Simplifying the code of methods: `nth`, `fold`, `rposition`, and iterators: `Filter`, `FilterMap`, `SkipWhile`.

@koalazen has the code for `Skip`.

Once #16011 is fixed, `min_max` could use a for loop.