added File.copy

Use case: when a file, e.g. from an ExternalTask lives
on a read-only filesystem, you cannot `move` it.

This is more a question, with some code attached. I came across such a situation, but I am not sure it really belongs here.