Remove hardcode commands

This now dynamically populates the commands available for each data type in qiita_pet.

It also adds functionality to the Command object to pull out a dictionary of commands keyed to the datatype they are for.
Is the exists function the only consumer of this method? If so, then that makes sense. If not, then recommend deferring the sort to where is needed