[backend] encode 'msg' in LogRecord sooner
RedisPublishHandler sends serialized LogRecord to RedisLogHandler,
and when the log message and its arguments isn't really carefully
typed - the path through serializer isn't lossless and
RedisLogHandler doesn't have enough information for proper log
entry formatting (when it comes to finally writing to the log
file).
So expand the message arguments rather early (before it is
json.dumps() serialized), when it is much easier to call __str__
(and friends..) on the objects automatically.
Fix: #488, #621