Sqlexpr_sqlite: support nested txs using diff conc. monads when possible.

Allow this:

  module S1 = Sqlexpr_sqlite.Make(Sqlexpr_concurrency.Id)
  module S2 = Sqlexpr_sqlite.Make(Sqlexpr_concurrency.Lwt)

  S2.transaction db
    (fun db ->
       S1.transaction db (fun db -> ...);
       return ())

and

  S1.transaction db
    (fun db ->
       Lwt_unix.run (S2.transaction db (fun db -> ...)))