Prepare createBackup for unit testing.

Added System.IO.Abstractions, which allows us to mock IO operations.
This was previously impossible because classes like File and Directory
are static.

For the same reason, I also moved any IO operation in createBackup into
CopyHandler, since CopyHandler implements the IO interface...I didn't
want to implement it in multiple classes if I could help it. Other
places in BackupPage still do IO and I may end up getting rid of that
too.