binlog_conn_streamer: tweak timestamps, transactions

Many situations that were initially deemed as errors can happen. So,
it's better to accept them.
Also, we now transmit the timestamp as seen by the commit or rollback.
This will help more accurately track replication lag.
binlog_streamer: Treat naked statements as auto-commit

It's possible that naked statements are present without BEGIN/COMMIT.
So, let's treat them as auto-commit. This also means that the initial
statements we see will appear naked if the streaming was not started at
a transaction boundary, but it's not worth differentiating the two. The
most common case is a DDL that can show up as is.
binlog_conn_streamer: improved autocommit state change