Add reverse_part, replace each_permutation, add tests
Ensure reverse_part does not access outside given vector
Update to modern rust
Remove each_permutation_ref
Update to new for-loop protocol
auto merge of #6523 : cmr/rust/faster_each_permutation, r=luqmana

Closes #5127