File copies the file named in src to a file named in dest. It returns the
number of bytes written and an error, if any. File uses buffered I/O and
delegates to io.Copy to do the actual work. The behavior can be optionally
influenced by setting options in opt.