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 

This exception is not something that helps to fix the problem, we already saw it multiple times.
When it was list, you got exception saying 'object is not a list' and what is it now? There is no any type requirement to specify that it has to be iterable type.

Do not youse 'void *' and friends in the code when you can write specialized wrappers.