Status base class

This adds a decorator to the QiitaStatusObject that can check what the status of the object is and stop functions from running if not correct. examples:

```Python
class Study(QiitaStatusObject):
...
@check_status("public", not_state=True)
def delete_something(self):
    ...
```

Would only allow deletions if the study was not public. Makes for a nice way of having data integrity with everything still not living in memory.

Also tiny change to sql_connection.py to mogrify the error output so you can see hat happened with the SQL.