Handle peers by topologies

Topologies are considered as the way peers are connected for each test.
For example, this topology:

	bench->cached->sosd

means that the requests will originate from bench, go to cached and then
end up in sosd. By writing a topology like so, we essentially describe
how we want our test and we leave the rest to the code.