* don't make index selectivity estimate requests fail inside cluster
transactions
* improve logging, and don't make transactions more robust
don't make transaction operations fail immediately if they cannot
acquire the transaction lock instantly. it is somewhat expected that
sometimes the garbage collection comes in-between and acquires locks
for a short amount of time - this should not lead to failures in
other operations on the transaction
* fix a race for transaction leases
* fix test failure
* moved functionality into shutdownExecute