recovery: merge: make read-write cycle async

We still block on .wait() at each iteration to not cause memory bloat /
overload of backend servers.
recovery: dc2: fix exit code of main()

Pointy hat to: me (rbtz@)
recovery: dnet_recovery: print rc in log on exit
recovery: do not show failures as negative values
recovery: merge: prettified stats
recovery: monitor: added robustness
recovery: monitor: fixed naming
recovery: renamed time to etime

Now it's not colliding names with stdlib's time module.
recovery: monitor: do not use select() for timeout