Create or Iterate Over Output Directory
The default behavior will be to NOT overwrite anything in the output
directories. That means they need to be iterated over in the same manner
that the inputs were.
Update Signature of iterate_input
The caller was having to pass in a parameter that was really only used
for recursion. It gets built up for each call. The caller could still
change the default if they wanted to.