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 

I agree with @shaitan, Python is not a strong-typed language as C++ is, so it's absolutely normal to build feature-oriented API than type-oriented. Generally Python-developers don't care about the exact types so Elliptics' Python API also shouldn't care about the types as well and be able to accept every possible type which satisfies semantic.