swap_ranges & tests, flesh out rotate, fix return types of rotate and move_backward