Recovery improvements

* Merge now uses multi-range iterators;
* Merge now uses one subprocess per remote address;
* Remove key-matching from python, use one big `IteratorResult()` for all iteration results;
* Improve logging format: display timestamp and process name;
* Internal `Stats()` improvements - it's Pickle'able now so can be passed back and forth between subprocesses;
* Added ability to specify timestamp as difference from current time in human readable form, i.e: `-t 1w 5d 6h`. This is also useful for cronjobs;
* Added ability to use lockfile for recovery. This is also useful for cronjobs;
* Many cleanup and comment fixes;

**NB!** @shaitan because there is only one iterator container per all ranges `dc2.py` is broken for now.