Refactor Sage internals into several different crates - separation of concerns (this can also aid in compile times)
Enable direct reading/writing of files from AWS S3, using aws_sdk & tokio (sage-cloudpath crate)
If files are read in parallel, read them in batches (currently set to num_cpus / 2) to help prevent OOM situations
Fix bug where protein_fdr was assigned to peptide_fdr field
Directly serialize to CSV ByteRecord, rather than going through Serde - this enables parallel serialization, which is useful for very large runs (tens of millions of spectra)
Additional parallelization for assignment of PEP, FDR
Refactor Sage internals into several different crates - separation of concerns (this can also aid in compile times)