text: Title: A better DHT benchmark
  Body: __Problem:__ to maintain & enhance DHT performance, we need a way to measure it. Our current benchmark covers an edge case that does not represent our typical usage.
  
  * [x] __Preliminaries__
    * Install hivemind using [this quickstart guide](https://learning-at-home.readthedocs.io/en/latest/user/quickstart.html)
    * Learn to use DHT using [this tutorial](https://learning-at-home.readthedocs.io/en/latest/user/dht.html)
      * btw any feedback on tutorials is very welcome
    * Run current benchmark: [``benchmark_dht.py``](https://github.com/learning-at-home/hivemind/blob/master/benchmarks/benchmark_dht.py)
        * `cd benchmarks && python benchmark_dht.py --num_peers 256 --num_experts 4096 --expert_batch_size 16 --expiration 9999`
  
  
  * [x] __Main quest__
    * Instead of using just one peer for all get/store action, we should spawn `--num_threads 16` parallel tasks that collectively run `--total_num_rounds` consecutive iterations. On each iteration:
      * generate a unique random key, then pick `--num_store_peers` (from 1 to 10) random peers (default = 1)
      * each peer should .store a unique subkey to the same key in parallel (using return_future=True from tutorial)
      * after all peers finished storing, choose `--num_get_peers` that may or may not be the same as the peers that stored the value
      * each of the new peers should .get the key with latest=True or False (option, default=True)
  
  
  
  __Side quests (optional):__
  - [x] measure the global frequency at which .get requests returned the correct output
  - [x] measure the mean, stdev and max wall time for each .store and each .get request (use ddof=1 for stdev)
  - [x] add an option to sleep for `--delay 0` seconds after store and before get
  - [x] implement an option to randomly shut down `--failure_rate 0.1` peers halfway through operation, between store and get
  - [ ] accelerate DHT swarm creation (@borzunov has some ideas)
  - [ ] update [benchmarking docs](https://learning-at-home.readthedocs.io/en/latest/user/benchmarks.html#dht-performance)
  - [ ] see if we can trick DHT into emulating network latency through [`tc qdisc netem`](https://netbeez.net/blog/how-to-use-the-linux-traffic-control/) and using public IP address instead of localhost
  
  
  __Note:__ my naming convention is likely not very intuitive, feel free to propose a better one.
  
  __Additional references:__
  * API reference for DHT - https://learning-at-home.readthedocs.io/en/latest/modules/dht.html
  * Original paper on Kademlia DHT - https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf
  