trans: new timeout transaction completion logic

Timeout logic used to be a bit awkward in elliptics - there was
a queue of transactions ordered by transaction number, i.e. the
first transaction created was the first one in the timeout queue,
which was checked by dedicated thread once per second.

Checker thread checked transactions one after another and if
its death time has passed the current time, transaction was removed
and killed in a few moments. But if transaction (ordered by its number,
not time to death) is not supposed to be timed out right now,
thread did not go past it to the next one, which might already timed out.
Multiple transaction started at the same time could look this way:
transaction 1, timeout 10 seconds
transaction 2, timeout 5 seconds

Transaction 2 will not be checked until transaction 1 is killed.

Now scheme is different - there is a timer tree indexed by
the time-to-timeout-death, checking thread's logic is the same.

Each server's reply changes time-to-death (wait timeout is being added
to the time reply has been received, that becomes a new
time-to-timeout-death). But this was true for previous logic too.

Conflicts:
	tests/srw_test.cpp
	tests/srw_test.hpp
	tests/srw_test_app.cpp
tests: cleaned up srw timeout test: removed misleading debug output when everything is ok, voided unused variable
v2.24.15.21
srw-test: use std::move() to show that async_result can be moved into the vector of pairs
srw-test: use emplace_back(int, async_result) to fix move constructor usage
srw-test: use std::list since 2.24 doesn't have movable async_result
srw-test: moved thread-watchdog class outside timeout test function for older compilers happiness

Conflicts:
	tests/srw_test.cpp
list-stat: initialize timer with the current time, not zero