Txs single partition

Optimisation for transactions that affect only one partition. I have also added two tests to check that works. The operations clocksi_iprepare and clocks_icommit used for testing corner cases in the algorithm are still in the API. For benchmarking, the new operation clocks_full_icommit(we can change the name) should be used since it will take advantage of the optimisation and likely improve results.