sweet: simplify diagnostics config handling

Currently, diagnostics track and pass around a potentially different
results directory for each diagnostic type. In practice, these are all
always the same directory.

Trying to keep track of potentially different per-type directories is
going to get cumbersome in some upcoming changes, so this CL
simplifies all of this by replacing the per-type directory
configuration with a single results directory.

This necessarily changes the way we pass this configuration to the
benchmark drivers. We take advantage of this opportunity to clean that
up as well. Now, the entire driver diagnostics configuration is
represented by a single diagnostics.DriverConfig type, and this type
can be "serialized" to and "deserialized" from command line flags, as
symmetric operations.

Change-Id: Ifbeb7a5d456dfcd6b6211dfb2b870f41bb7c5c70
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/600058
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
4 files changed