Improvements to split_otu_table.py

This PR reduces the code complexity of ```split_otu_table.py```and  adds functionality to allow a user to pass multiple fields to split the biom table on. Adds significant documentation to the library code and the script.
Does this need to be a `list`? It is being used for a lookup on line 141 which suggests it should remain a `set`