+act #13004 Adding TailChopping router

Initial implementation + test for #13004
Does it look ok, or some generalisation with ScatterGatherFirstCompletedRouter should be made instead? 
I will update doc when final solution will appear.
Last change in this PR, I promise :-)

How about this:
```
The TailChoppingRouter will first send the message to one, randomly picked, routee
and then after a small delay to to a second routee (picked randomly from the remaining routees) and so on.
It waits for first reply it gets back and forwards it back to original sender. Other replies are discarded.

The goal of this router is to decrease latency by performing redundant queries to multiple routees, assuming that
one of the other actors may still be faster to respond than the initial one.

This optimisation was described nicely in a blog post by Peter Bailis:
`Doing redundant work to speed up distributed queries <http://www.bailis.org/blog/doing-redundant-work-to-speed-up-distributed-queries/>`_.
```

Linking to the blog should help people understand what/why it's working like this.
Please squash and we'll merge! Thanks for the hard work on this one, it took a lot of time :-)