Improve benchmark tests

This commit improves the ability to test the benchmark API by adding
several features.

Pause/resume: New API commands are added to pause running benchmarks and
to resume them. The commands are exposed in the REST API at
/_bench/(pause|resume).

Control commands: Adding the pause/resume resulted in a lot of duplicate
code. Consequently, this commit consolidates the code for 3 different
API commands into one. The result is a new control API that handles the
logic for pause, resume, and status requests. REST API has not changed
for status requests. The Java API has been slightly modified to accept a
control command parameter to specify pause/resume/status.

Mocking: A mock service is implemented which provides the ability to
pause benchmarks after they have been submitted, but before they
actually start executing. This allows easy testing of various benchmark
states w/o having to do tricks to coerce runtime state.

Closes #6224