Added plenty of comments and TODOs.
Ignore test files.
Added RecursiveDirectoryList to recursively list a directory's contents.
Added DeleteDirectory which will properly delete a directory.
When creating the recursive directory listing, save the absolute path.
Added DiffDirectory.

DiffDirectory will return `plus`, `minus` and an error. The plus
directories is a list of pathnames which appear in the directory A but
do not appear in directory B. Minus is the opposite list of this. This
reflects common `diff' tool's behaviour.
Reworked the test.

We don't have to keep track of the directory names because we now have
have the DeleteDirectory function in the library so we just need to
keep track of where we started and delete that.
Tests fail if the directories do not match.