Benchmarks: Re-factored benchmark infra

Major re-factoring to use a dual-channel strategy for executing
benchmarks. Uses cluster metadata for managing lifecycle events, but
transport channel to send benchmark definitions and results between
master and executor nodes.
I could understand the need to this communication pattern (of transient state shared across subset of nodes in the cluster). We are using very similar pattern in rivers, it seems to be useful here as well. Maybe we need to add  cluster-wide transient shared state communication pattern, but I still have serious doubts that it belongs to "the cluster state".