reduce thread count for tree.build_iqtree() when num_seqs < nthreads
reduce thread count for tree.build_iqtree() when num_seqs < nthreads

When the number of sequences provided to IQ-TREE exceeds the number of threads specified,  IQ-TREE exits with the condition "ERROR: b'ERROR: Too many threads for short alignments, please reduce number of threads or use -nt AUTO to determine it.\n'"
Changes included here bound the number of threads to the lesser of `num_seqs` (which is determined during while writing the input temp file) and `nthreads`. When many sequences are provided with fewer threads than sequences (the common case), this will behave as before. When few sequences are provided this should prevent IQ-TREE from crashing.

nextstrain/augur,nextstrain/augur,blab/nextstrain-augur,nextstrain/augur