Native implementation of mv & cp commands in repl

Instead of calling an underlying shell, the mv and cp commands now use
jl_fs_rename and jl_fs_sendfile respectively (wrappers for libuv).  In
the event that the rename call fails on error, mv command still uses
native implementation by defaulting to cp (sendfile) and rm (unlink).

This fix also includes a new unit test for the copy function.  It copies
contents of one file to another and checks that both files are
equivalent.

Fixes issue #4157