TempDir creates and returns a temporary dir inside our base temp dir specified on FS.tmpdir.
Returns the directory path, a clean up function (delete dir) or an error.
TempFile creates and returns a temporary file inside our base temp directory. Returns the
opened file, a clean up function (close and delete file) or an error.