savevm: add section lengths to vmstate so we can skip devices

For QEMU, loading a VM state with devices not present in the emulator is a
failure. In PANDA, we have multiple cases where this should *not* be a
failure:
  1. Replay, where we only care about the CPU, RAM, and any devices needed by
  loaded plugins.
  2. Plugin state, which is only relevant for loading a VM for resuming a
  snapshot or replaying execution with that plugin still loaded.

Previously, we have had to ensure the command line for QEMU was the same
during replay as during record, up until the last device we cared about, since
QEMU loads all devices until it finds a mismatch, and then stops loading
devices. Since CPU and RAM are the first devices, this usually meant the
command line simply had to be enough to start QEMU with the correct CPU model
and RAM size.

After this patch, devices in the vmstate that are not present in the emulator
will not cause the snapshot to stop applying at the first missing device, so
the devices of interest are the only ones that need to be specified.
savevm: Use QEMU's v3 vmstate when not saving a recording starting point

Keep compatibility with QEMU for savevm calls that are not used for PANDA's
record/replay functionality.