made filters use FileBackedSimulationData
use CSVExport.getFormat() for format, not just CSVFormat.EXCEL etc.
this should help standardize some things and make change easier
make CSV parsing more lenient
Finally implemented Generator.finish() in a way that worked!

uses random access files now for re-writing
still has to copy over the file, however, because the header record is
not always the same number of bytes.  

Now we just need to fix that MAJOR bug with the times being wrong!