Move Fastq functionality into gamgee

* add exception safety and checked assignment to self to SamHeder's assignment operator
* make complement and reverse complement use std::transform instead of explicit loop
* add in place alternative for complement calculation
* add tests for complement
* rev up htslib