Refactor: libcib, based: Implement transaction management in client
Implement CIB transaction management (initialize, extend, discard) at
the client side. To keep the size of this commit under control, for now
we continue to manage transactions on the server side as well. The
client does not yet send the transaction XML as part of the commit
request.
In each cib_t client object, store an XML object containing the CIB
transaction (if any). If a newly created request should be part of a
transaction, add it within cib__create_op().
The init_transaction() and end_transaction() (with commit=false) members
of cib_api_operations_t now create and free (respectively) the
cib_t:transaction object.
Ref T690
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>