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 commit also adds:

- Wildcard requests for pause/resume/abort.
- Fixes transport request ACTION string to conform to security naming
conventions.
- Fixed bug that incorrectly calculated total requested iterations in
cases where summary computation was called more than once.
- Rename field 'total_completed_queries' for better readability.
- Clear values for slowest when re-calculating summary results.
- Simplified use of barriers and semaphores in testing logic to allow
suspending benchmark execution for testing various states.
- Handle cases where executor nodes drop from the cluster during
execution.
Maybe rename this method to addedOrChanged() or something like this to reflect the fact that we don't care about deleted benchmarks here.