Add CopyHandler class.

CopyHandler abstracts away the file copying and logging details so that
only the logic of the backup/restore remains in those methods. It also
enforces consistent log messages.

Updated the backup procedure to use the new class. This has not been
tested yet, so consider it broken as of this commit. I'll need to mock
test it to really test it effectively, so that's up next.