pre-cache seqids for -matchdescstart optimization

This PR adds preprocessing of seqids when the option `-matchdescstart` is specified for sequence access. It will access all sequence descriptions only once and cache them in a hash table, eliminating the need for _O(n)_ grep-search in _n_ headers whenever a new sequence from the set is requested. I noticed this to be the major bottleneck when accessing (e.g. unfinished) genomes with many, many sequences. In my test case, the time for extracting the gene sequences for _Schistosoma japonicum_ (12743 genes from a sequence set of 25048 individual scaffolds) with the script https://gist.github.com/satta/e6a6c179dac88fcbd51f was reduced to 3.7 seconds:
```
[satta@renard:~gt] ◇ time bin/gt getallgeneseqs.lua Sjaponicum.noseq.gff3.gz Sjaponicum.genome.fasta.gz | wc -l
12743
bin/gt getallgeneseqs.lua Sjaponicum.noseq.gff3.gz Sjaponicum.genome.fasta.gz  3.72s user 0.05s system 99% cpu 3.768 total
```
Using the old version, I stopped the test script after > 10 minutes with no results.

Closes #363.