[autotest] Add a provision control segment to autoserv.

This adds a control segment to autoserv that understands how to look up
what test is associated with a certain label that needs to be changed,
and that invokes the test.  Note that support for autoserv actually
calling this control segment has not been added yet.

The design of this is such that the status log of a provision test will
look like
START   ----    provision
  INFO    ----    provision Can't provision label 'x'. Skipping.
  START    provision_AutoUpdate
    TEST_NA provision_AutoUpdate Host already running lumpy-release/R28-3993.0.0
  END TEST_NA     provision_AutoUpdate
END GOOD   ----    provision  hostname provisioned successfully

So that it's quite clear when looking at the status.log what provision
test were invoked, and what the result of each one was.

There's also some work snuck in here that moves some code out of
provision_AutoUpdate that will be useful to other provisioning tests,
and centralizes where to hold constants.

BUG=chromium:249437
TEST=Ran the control segment manually via
|./server/autoserv server/control_segments/provision| and passed
"cros-version:R28-3993.0.0,unknown_arg" via --args, and confirmed
The provision_AutoUpdate test was invoked and "unknown_arg" was logged
as an unprovisionable label.

Change-Id: I1f6c301d837b9553863389409475a76ff67e0828
Reviewed-on: https://gerrit.chromium.org/gerrit/58383
Commit-Queue: Alex Miller <milleral@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
3 files changed