Add ability to save paired-FASTQ files

There is existing functionality for loading a pair of FASTQ files, but not for saving such files. I am in need of a tool to convert some BAM files to paired-FASTQs, so I added this capability.

I'm not an expert on the convention of having read names all end with `/1` in one file and `/2` in the other; for my purposes I want to always write them out that way and have the option of doing some strict sanity checking (all reads have a mate on the way in and out), so I added a few optional levels of verification to the loading and saving steps.

hrm i thought about that, but part of what makes them concise here is that they close around `persistLevel`; the boilerplate around the one-line function
```
def maybePersist[T](r: RDD[T], persistLevel: Option[StorageLevel]): Unit = {
  persistLevel.foreach(r.persist(_))
}
```
doesn't seem like an obvious slam dunk to me. Let's wait and see if we end up with a 2nd implementation of this pattern?