Commands datatype table

This adds a join table that links a command up to the datatypes it can be run on. Needed so we can programmatically populate the commands selection for each datatype.
In that case, i think this ```try/except``` can be replaced with:
```python
if sql_args and sql_args[0] and isinstance(sql_args[0], Iterable):
    err_sql = cur.mogrify(sql, sql_args[0])
else:
    err_sql = cur.mogrify(sql, sql_args)
```
right?