Implement basic restore functionality.

I greatly simplified the restore logic from what it was before.
Previously there were 3 nested foreach loops to protect against
directories that were removed from the backup...I've done away with this
and assume they exist. If they don't, CopyHandler just logs it.