Modifications to os::copy_file()

* Returns `false` if destination exists.
* Returns `false` if source is not a file (e.g. dir, sym link, etc.).

cc #9947
auto merge of #10175 : hatahet/rust/master, r=alexcrichton

* Returns `false` if destination exists.
* Returns `false` if source is not a file (e.g. dir, sym link, etc.).

cc #9947