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.
* varsutil: remove dependency on 'types' for 'variable' package
'variable' package will be used in 'types', remove dependency on 'types' by
moving functions to a new 'varsutil' package.
Also extract 'SetExec' from 'SimpleExec'
Currently, truncate table deletes rows in table in one large transaction,
too large transaction is very likely to fail.
This commit use DDL to do the work, it returns instantly, old data will be
deleted by background worker.