Fix #944 Add option preserveExecutable to IO.copyFile and IO.copyDirectory