MySQL requires VARCHARs to have a length

This patch adds the length to all the `sa.String` usages in the tables
module. The values chosen are based on the already enforced limits.

Change-Id: Idcdd3f6c8027e6d79a4fb6d006e0d85dd81f3cdd
Set time_zone to UTC on MySQL

MySQL uses UTC for all date fields but other operations like `now()` use
the timezone of the server. This patch changes the timezone of the
connection to UTC when the connection is first established.

There's space for improvement here. For instance, we could try to avoid
doing this for every new connection and let the operator configure it on
the server side. We could also use `CONVERT_TZ` on every query using
`now()`.

Change-Id: I2e8415dbb9a6ce19d3a66f3226756094b3e0f6a4
Partial-bug: #1288820
Reuse the transaction before getting messages

The message get helper for claims used its own connection and ran
outside the transaction where the 'claiming' happened. This caused the
get to fail at retrieving the messages because the query was being
executed 'before' the transaction.

This patch fixes the aforementioned issue and also ensures that records
ids are 'int' before calling `message_encode`.

Change-Id: I076ffc171adf02fdb15160b6c7b29646ee3fb280
Closes-bug: #1288820