WIP: split libraries from SFFs

Design is to support:

* SFFs
* fasta
* fasta and qual

Specific parameters such as barcode type will be sourced from db. Finalizing this will require touching a few other areas of the codebase and a db patch, which I'll get to as they become necessary.

**This is not tested, and not mergable yet**
The error checking here will get very tedious going forward particularly as we support different types of data. We might want to think about marking this as a point of refactoring