Fix a broken test.
Drop unused messagetext column.
Store status on event in gutterball.

Events initially are set with status RECEIVED. If it never makes it past this
state, that implies there was some kind of an error, and theoretically the
processing should be retried periodically in the future.

SKIPPED indicates we didn't have a handler for the event target, or we did but
it didn't implement a method for the particular event type for that target.
These too might theretically be re-examined in the future after an application
upgrade if we decided to start processing on some new kind of event.

RECEIVED indicates we did have a handler for the target/type and it was
processed successfully.
Move to two phase event processing in gutterball.

In first phase we try to do only the very basics, read the event JSON, and get
it into our db in it's raw(ish) form, and commit the transaction. Exceptions
should bubble up causing the event to remain in the bus queue.

In second phase we try to do our actual event processing, if applicable.
Exceptions should never bubble up, instead we log them and leave the event in the
db with a state indicating there was an error.
Log the thread ID instead of the request UUID / owner info we don't have in gb.
Fix a transaction error.