[DBAgent] Add a new framework to do transaction.

Previously we use macro's to write proceduresdo in transactoin.
As a result, the syntax around the macro is little storange
in terms of the C++'s grammer.

In addtion, the procedures such as select or insert should be in
the DBAgent's contenxt since their operations depend on the SQL
servers in a precise sence.
I sometimes see it.
For example, MySQL uses the word for constants.
http://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html