IO: improve and test the API of with_out_channel
System: implement ?if_exists option for copy/move
sys_test: add more extensive testing of copy/move