TODO
removeFileAllowNotExists -> removeFileOrDirectoryOrNothing
Add removeFileOrDirectory
Add overwrite-check for unregistered outputs and --overwrite
Use IORefs with one-read/one-write for registered/leaked outputs