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.
This way you can do string searches on the database in the exists function and you can count on the options always being in the same order. Makes the search easier essentially.