WL#4162: Add start/end of trx/stm to binlog

Affects: Server-5.7   —   Status: In-Design

Executive Summary
=================
This worklog provides information at each event logged to binary log
about transactions boundaries by setting markers in the logged event.

These markers use three single bits of the Log_event Common-Header
flags.

By using single bits of the Log_event Common-Header flags this feature
will need no additional space in binary log to store these markers.

With such markers, by reading a single Log_event header from an event
stream, it will be possible to state if the event:

a) is from a server with the feature enabled;
b) has no transaction boundary information;
c) is a self contained event;
d) is starting a transaction;
e) is inside a transaction;
f) is ending a transaction;
g) is in the middle of a transaction;
h) should not be considered in the transaction boundary parsing.

Before this worklog it was needed to parse a set of events in an event
stream to get information about transactions boundaries. The old
method will still be used when dealing with events without boundary
markers.

After this worklog, this feature will be always enabled. There will
be no option to disable tagging of transaction boundary markers in
MySQL server. 

References
==========
Bug#17943188
BUG#26395, WL#3735