vinyl: improve transaction conflict manager
vinyl: improve transaction conflict manager

Use a red-black tree for conflicting transactions on the same key,
not a linked list. This simplifies the code and removes O(n)
conflict resolution complexity (n is the number of concurrent
transaction).

Unfortunately, there is another O(n) at commit time,
during transaction log garbage collection, to be fixed in a separate
patch.

Do not change logical transaction start time of objects during
transaction commit, this is a) unnecessary b) breaks the transaction
position in the red-black tree.

rtsisyk/tarantool,rtsisyk/tarantool,mejedi/tarantool,mejedi/tarantool,rtsisyk/tarantool,mejedi/tarantool,mejedi/tarantool,rtsisyk/tarantool