Adding check for starting tree labels.

Adding a 'starting_tree' argument (False by default) to the
read_and_encode_splits and read_trees_into_dataset functions within
sate.treeholder. Also, adding check_taxon_labels function that
gets called if 'starting_tree=True' in the other functions.

This allows the starting tree's taxon labels to be checked
against the sequence labels of the current dataset. If there
are mismatchs, a sate.errors.TaxaLabelsMismatchError is raised.
Adding sate.errors

Adding errors.py to package for custom exceptions/errors. Currently,
it only contains TaxaLabelsMismatchError.
Adding tiny.fasta and tiny_name_mismatch.tre

These data files will allow for a simple test of tree/data
taxon label mismatches.
Adding test_treeholder.py

This new test file tests the new functions added to sate.treeholder
that check taxon labels between sequences and starting tree tips.
Updating starting tree parsing in mainsate.

I am adding a 'starting_tree=True' flag to the
read_and_encode_splits call within the finish_sate_execution function.
This will cause the tip labels to be checked against the sequences
and will result in an TaxaLabelsMismatchError if there is a
mismatch.

Adding associated test to test_main.py.
Fixing bug in tree reading.

Fixing a bug introduced with the taxon label check during reading
of starting tree. read_trees_into_dataset within sate.treeholder
was trying to read the same stream twice. It now uses the temp
dataset populated with starting tree(s) to populate the main
dataset.