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.
this class should not be part of Guice it should really take the ClusterService whereever it's needed or the actual class it needs and make sure it's a final class with a private Ctor and if applicable make it package private