Make transaction life cycle under control, prepare for correctly handle schema out of date error.
The old `GetTxn(forceNew boll)` is replaced by `Txn` and `NewTxn`,
`CommitTxn` and `RollbackTxn` is removed.
Pass query string in context, also disallows prepare DDL, so we can be sure that
DDL query do not contains parameter marker.
change binlog row encoding format.
including columnID in binlog row, so it can be adapted to different schema version.
prepend old row for update binlog when don't have PK.