Add reverse_part, replace each_permutation, add tests
Ensure reverse_part does not access outside given vector
Update to modern rust
auto merge of #6523 : cmr/rust/faster_each_permutation, r=catamorphism

Closes #5127