Adding optional base parameter
Including getUniquePrefix
Adding directory recursion
Attempting to handle null pointers better

Choosing to wrap pointers in Option as soon as I get them, just in case.
Process everything relative to the actual base directory
Being more explicit
Create intermediate directories in writeOut
Bumping version
Merge branch 'dirsupport'