devices: virtio: block: use descriptor chain utils
devices: virtio: block: use descriptor chain utils

Rewrite the virtio block device to use the descriptor Reader/Writer
interfaces - this greatly simplifes the block device code.

This also lets the block device handle arbitrary descriptor layouts,
since the descriptor reader/writer handles that transparently for us.

BUG=chromium:990546
TEST=./build_test
TEST=Boot crosvm with vm_kernel+vm_rootfs on workstation
TEST=Boot full Crostini environment on nami

Change-Id: Ie9a2ba70a6c7ed0ae731660fd991fb88242e275f
Signed-off-by: Daniel Verkamp <72bc170b46ec491f7bdd4359a1c0bfed274de40c@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1721371
Tested-by: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
Reviewed-by: Stephen Barber <7719587e4b5a49340661b214ec85602f3918d06f@chromium.org>

google/crosvm,google/crosvm,google/crosvm,google/crosvm