encode filenames to system encoding before calling shutils.copy2()

shutils.copy2() eventually calls os.stat(), which fails if given a
unicode object.  So, encode the filename before the call to copy2(),
using the default file system encoding.
getting the file system encoding is loop invariant

so move it out of the loop.
Merge pull request #253 from mdomsch/bug/unicode-stat

encode filenames to system encoding before calling shutils.copy2()