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