This commit will fix the batch export issues related to distributed file systems and memory limitations.
Basically, instead of pretending the headers at the last step of the export and loading the full CSV content into memory each time data needs to be added, we basically will append the data to the created file on each batch request; and at the last step, we will also create a temporary file to store the CSV headers, so when preparing the download to the user, this will simply read the CSV headers from the created temporary file.