Extend random graph tests to exercise partitioning algorithm.

Previously tests were run for each device.  For any graph larger than a
single operation, there are now two more runs:
- Allow runtime to distribute work across all devices.
- Allow runtime to distribute work across 3 synthetic devices
  (1.0, 1.1, 1.2).

Also:
- Reorganize the SampleDriverAll class.  Previously, we had such a class
  used only by the sample-all service.  Now this is replaced by a more
  flexible SampleDriverFull class, used by the sample-all service and
  also available for other uses (such as the random graph tests).
- Add new DeviceManager methods forTest_getDevices() and
  forTest_setDevices().

Test: NeuralNetworksTest_static
Test: NeuralNetworksTest_shared_partial
Test: NeuralNetworksTest_static_fuzzing
Test: atest CtsNNAPITestCases

Bug: 79165035

Change-Id: I5cdc358e4d56de3e76bd027bf899e7365f071ff4
Merged-In: I5cdc358e4d56de3e76bd027bf899e7365f071ff4
(cherry picked from commit 5c76ec1547e5d7f833cbb7b512c09f32d0b2f17a)
7 files changed