cp: break up copy_directory() into helper funcs
cp: break up copy_directory() into helper funcs

Add some additional structs and helper functions to make the code in
`copydir.rs` easier to read and maintain. This commit changes only the
organization of the code, not its function.

uutils/coreutils,uutils/coreutils,uutils/coreutils