Fixing some exceptions

Exceptions aren't parsed correctly when the exception type is not
on the same line as the lib::create call.
Improving CSV reporting system and multi-participant operations

Greatly improved performance of CSV report output type
- replaced internal library for generating CSV files with native code
- reports generation time no longer scales linearly with the number of rows

Multi-participant operations can now take CSV files as input
- the first column of a csv file can be taken as UIDs in multi-participant operations
- designed so that the csv output from the participant report can be used as input

Adding new temporary file upload operation
- temporary files can be written to disk and used in future operations