Minor database change
- Text fields should be UTF-8. Fixes #491
Alter INSERT IGNORE queries to workaround innodb auto increment behaviour

An INSERT IGNORE query will still increment when using innodb, even if no row is inserted.  We can work around this by using a slightly convoluted query, but this only works if the table is non-empty, so also check for that on startup and create a dummy record if necessary.
Merge pull request #493 from frymaster/set-text-type

Minor database change and query change
Expand chestaccess querying

Make a decison on whether or not to return chest access data based on the
BlockChangeType (ALL or CHESTACCESS) rather than partly on the block parameter
as these are the only two query types that don't enforce type != replaced

This is helpful because the list of blocks to request chest access for was
outdated and is duplicated in 3 different places, whereas the new method
will return whatever results have been logged regardless of type.

In addition, if the query type is CHESTACCESS (but not ALL), we can use
an alternate query that is vastly more efficient.  In tests (26 million
row log table, 400,000 row chest table) the query time for all chest results
was reduced from 30 seconds to 3.

Allows the chestaccess parameter to return data from the following inventory types:

- Brewing stand
- Trapped chest (fixes #483)
- Dropper
- Hopper
- Beacon

Note that this only affects lookup of logged items; the logging process has not
been touched, so #433 and similar have not been addressed

Also, update the list of valid container types, which will improve logging of
broken containers.
Merge pull request #495 from frymaster/chest-access

Expand chestaccess querying