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.
@wasade agree that databases are unordered. Note that what we are sorting here is the actual string representation of the option. That is, the database will receive only the string. The main reason of sorting them is that we can then perform an exact match of the string, without decoding the json into memory and performing the comparison.