Implements basic mv.

Moves out Copy() from cp into shared. Also adds handling of directories as
destination operand in cp.