Convert messages to binary before sending to sinks.

Disk sinks do this anyway. So it will save us some work there and
unneeded copies between processes. Besides this, we now that logging
long strings takes a lot of space and erlang is quite reluctant about
garbage collecting it. So it's better to get rid of strings before
message reaches long-living sink processes. The caller is more likely
to be short-living process. So it's likely that memory will be
released sooner.