balloon: Fix handling of the free-page reporting queue
balloon: Fix handling of the free-page reporting queue

Unlike the basic inflate queue, the driver does not pass us arrays
of memory ranges. Instead, the reported memory ranges are themselves
passed as virtio buffers. Crazy, but true. This arrangement requires
its own handling in the balloon device code.

Bug=b:242856366
Test=run vm, use memory, free memory, observe memory freed to host

Change-Id: Ia2bfb3b32ffda8aa1e80df8be17d5b46932cd50c
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3836532
Tested-by: Keir Fraser <8e073e04bd9691eaa20733017be556c7bd381775@google.com>
Reviewed-by: Elie Kheirallah <da0b2b1fa407bbb859be3013f288ed11b17e0d01@google.com>
Reviewed-by: David Stevens <2f87ba95ff5d327328bd68c2e86a4d9f2ba99bd0@chromium.org>
Commit-Queue: Keir Fraser <8e073e04bd9691eaa20733017be556c7bd381775@google.com>

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