Use utf8mb4 character set and utf8mb4_bin collation

Using utf8 and utf8_bin (respectively) causes issues because it doesn't
support code points above the basic multilingual plane (BMP). Such code
points include Emoji and weird italicized letters.
Fetch channels only once per session