MySQL: Switch columns to use utf8mb4 instead of utf8
MySQL's utf8 is problematic, it's actually 3-bit UTF-8, not standard 4-bit UTF-8, which is utf8mb4 in MySQL. Using utf8 means it doesn't support emojis and other non-Western languages.
These fields are switched to use the utf8mb4_bin collation, which means they'll have a utf8mb4 charset. Using utf8mb4 is already the recommended config as of e6e0a10a.
However we can't use utf8mb4 everywhere yet since MySQL 5.6 only allows indexes to be 767 bytes large, which means SAUnicode / VARCHAR(255) is too big to be indexed when utf8mb4. As a compromise we use it in non-indexed fields where user input is likely using a new SAUnicode4Bit type. Once MySQL 5.6 support is dropped, we should get rid of the 3-bit SAUnicode type and alter the rest of the columns. Since SAUnicodeLarge is already too large to be indexed, all uses of it are switched over to utf8mb4 unconditionally.
SAUnicodeXL is not converted because it's too big to fit in utf8mb4, which has a max length of 16,383. Since it's only expected to ever be used for pendedkeyvalue.value (which will never receive a non-base-plane Unicode), we'll leave it as utf8 with a warning not to use it.
Fixes #891 (closed).