rewrite the utility functions to parse fasta files.
simplified parsing of fasta file means we can use parsefasta instead of flattenfasta and opening a file twice.
if no arguments provided, return usage message.