tests: test for dnet_recovery with --dump-file option was added

Это тест восстановления с опцией `--dump-file`.

Я сделал в отдельном файле, чтобы можно было посмотреть на изменения, которые затронут все тесты восстановления, чтобы запускать их двумя способами:

1. когда тесты сами записывают для себя данные;
1. когда тесты принимают файлы, в которые указаны, какие данные были записаны (для тестов на большом объеме данных).

Тесты можно запустить (подробности в **conftest.py** или `py.test --help`, находясь в `tests/unstable/`):

1)

    PYTHONPATH=./ py.test -v -s \
    --node=server-1:1025:1 \
    --node=server-1:1026:1 \
    --node=server-1:1027:1 \
    --node=server-2:1025:2 \
    --node=server-2:1026:2 \
    --node=server-2:1027:2 \
    --node=server-3:1025:3 \
    --node=server-3:1026:3 \
    --node=server-3:1027:3 \
    --good-files-number=70 \
    --bad-files-number=100 \
    --broken-files-number=50 \
    --files-size=102400 \
    tests/unstable/

2)

    PYTHONPATH=./ py.test -v -s \
    --node=server-1:1025:1 \
    --node=server-1:1026:1 \
    --node=server-1:1027:1 \
    --node=server-2:1025:2 \
    --node=server-2:1026:2 \
    --node=server-2:1027:2 \
    --node=server-3:1025:3 \
    --node=server-3:1026:3 \
    --node=server-3:1027:3 \
    --good-keys-path=./good_keys \
    --bad-keys-path=./bad_keys \
    --broken-keys-path=./broken_keys \
    tests/unstable/

Сейчас предполагаю слить эти изменения в **develop** и сделать активным билд тестирования на реальном кластере (это возможно, так как этот тест в отдельном файле).
И после этого приступлю к изменению остальных тестов восстановления, допиливанию запускатора, чтобы он мог работать с реальными машинками.

reviewers: @uvizhe, @shaitan

Это можно понять, если посмотреть на traceback. Помнить этого не нужно (и бежать тоже :) ) - что проверяется понятно из кода.

Если хочется, чтобы не нужно было смотреть на код, а только на сообщения от assert'ов, я могу сделать так сейчас (или сделать matcher со своими описаниями для подобной проверки):

    result_data_hash = get_sha1(str(result.data))
    assert_that(k, described_as("The recovered data mismatch by sha1 hash: %0",
                                equal_to(result_data_hash),
                                result_data_hash))

    AssertionError: 
    Expected: The recovered data mismatch by sha1 hash: <588772a60b91c52effa7e2f3aa37297d5a2a9c94>
         but: was <3107978c138eb43d751875366ad3b6f04cd85350>