This gets dirty quick and as the base class effectively gets qual as an ``array`` when using ``FastaIterator`` or as a ``str`` when using ``FastqIterator``. Its possible to coerce the transform, but I'd hate myself for the design. I really am not jazzed about subclasses for a qual transform as then there are multiple fastq iterators instead of a single one. 

The current approach does not support multiple versions of casava over a single iterator, but I'm not sure if that actually will be an issue in practice. To me, this is the biggest potential issue with the current implementation.

@gregcaporaso can you comment on the likelihood of multiple versions of casava used within or over multiple files? Also, when you have a chance, could you describe further what you don't like about the conditional here?