Fixes & updates

## Updates
* allowed `elliptics.Id` to be initialized by any iterable object and group
* replaced `cPickle` by `msgpack` for packing intermediate results in recovery - it speeded up merging phase
* added new recovery statistics:
  * `total_keys` - total number of keys that will be recovered / processed - available only at `dc` mode
  * `recovery_speed` - average speed of recovering which is measured in keys per second
  * `iteration_speed` - average speed of iteration which is also measured in keys per second
* added ability to iterate keys without metadata (user_flags and timestamp):
  * added `-M` option to `dnet_recovery` which speedups iteration phases of recovery but sacrifices checking metadata. Recovery with this option will not check metadata, will not replace old records by new ones, but will only copy some available replica of keys to groups which do not have these keys.

## Fixes
* fixed `elapsed_time` of async_result calculation and provided start/stop timestamps of async_result
* fixed `PyEval_InitThreads` at `gil_guard()` - some times it crashes python on trusty
* fixed parsing `group` from config - negative group is improper

## Tests
* disabled srw in the cluster for test_specific_cases
* added tests of iteration
* updated tests of recovery: made some cases to use new option `-M`

## Others
* cleaned up python scripts
* moved server fixture to conftest and made server (elliptics testing cluster) session-wide - made pytests to control lifetime of all server nodes 

No, it is not. Why I need to know the real type of object? What for? If this unknown object can be converted to elliptics.Id - let it be converted, if it can't let elliptics.Id tell that it can't.