Support for QSEQ parsing.

This relates to issue #389.  @audy, @wasade.

Added parse_qseq, QseqIterator, support in the factory for .qseq and .qseq.gz.  Added unit tests.

For Sequence ID, I am using: "machine_name"_"run_number":"lane_number":"tile_number":"x":"y"#"index"/"read".  Example: CRESSIA_242:1:2204:1453:1918#0/1.  Do you agree?

I set qual_id to seq_id.  Do you agree?


It might be nice to just chunk up the tuple here. The benefit is avoiding the indexing later and the variables are more explicit than just indexing in. Minor, and not a blocker

```python
try:
    machine_name, run, lane, tile, x, y, index, read, seq, qual, filtered = rec.split()
except ValueError:
    if strict:
        raise ...
    else:
        continue
```