Issue1506

Fixes #1506 

All `parse_fasta` calls have been removed from the script. All ways of filtering are now single pass over the sequence file. Minimal state in memory is now needed for filtering.
Not cleanly as it makes an abuse of `seqs_to_keep`. 

I'm hesitant to invest much time on this since it isn't clear what is going to be redone for qiime2. The code is exercised by the script usage tests though.