libsnapshot: Unify vts_libsnapshot_test harness.

A few major changes in this patch:

The userspace tests have been folded back into the main test file, with
some runtime checks to gate any dependent assertions.

The default test mode is to test using the device's native
configuration. However, there is now a -force_config flag with three
options:
 - "dmsnap" to test the old dm-snapshot code path. This is for legacy
   VAB (no compression, no snapuserd).
 - "vab" to test userspace merges.
 - "vabc" to test userspace merges with compression.

Note that "dmsnap" + "snapuserd" is not possible to test anymore, as the
code will soon be deleted.

The test suite uses the force_config flag to propagate settings to
SnapshotManager/snapuserd.

In addition, there is a new test wrapper, "run_snapshot_tests.sh". This
shell script can be run on the host or device, and will invoke
vts_libsnapshot_test. Once all three configurations are passing, they
will be added to this harness, and presubmit will be changed to run the
harness instead. The default mode will continue to be used for VTS.

Bug: 208944665
Test: vts_libsnapshot_test
Change-Id: I0bb0fdc936ce748c5fbe8ec2acb1eda6c16b11ae
5 files changed