Basic support for transactions

Usage:

Transaction = fun(Q) ->
   R1 =  Q(<<"SELECT * from some_table">>),
   R2 =  Q(<<"SELECT * from some_other_table">>),
   R3 =  Q(<"INSERT INTO ...">>),
   ....

   {ok, SomeResult}
end,

{ok, Result} = emysql:transaction(Pool, Transaction,  Timeout).

The transaction fun receive  one argument, wich is also a function.
That is used to perform queries.  Only textual queries allowed
(no prepared statments with arguments).

The result is the return value of the transaction function.
If the function crashes, transaction is aborted. That is the only
way to abort the transaction: throwing an error.