[autotest] Initial framework for the new Verify.

This CL is the first step in rewriting both the Repair and Verify
operations, starting with basic verification.  The new framework is
meant to enable fixing two specific problems:
  * We want consistent, useful log messages.  Especially, we want
    informative records written to status.log.
  * We want to avoid unnecessary actions (like repeatedly trying to
    ssh to a DUT that's known to be offline), both to avoid log
    clutter, and to improve performance.

The framework will consists of three parts:
  * The Verifier class, representing individual verification tests.
  * The RepairAction class, representing a procedure that can fix
    one or more failed Verifier tests.
  * A RepairStrategy class used to organize a DAG of Verifier and
    RepairAction objects, and invoke them in order.

This change does not include the RepairAction class or other related
pieces.  Subsequent changes will build on this code, and add support
for repair.

BUG=chromium:586317,chromium:586326
TEST=unit tests

Change-Id: I433b9fc9cdbec2a90a7611f5f256aab2d247a4eb
Reviewed-on: https://chromium-review.googlesource.com/327394
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Kevin Cheng <kevcheng@chromium.org>
3 files changed