fix(image_to_vm): Remove support for alternate state fs image.

We haven't really needed this, remove the option to simplify things.
fix(disk_util): Move existing image reading code to new function.

This will allow the code to be shared, making it possible to safely
resize existing images with disk_util.
fix(disk_util): Add option to safely rewrite partition table.

write_gpt --update <img> will read an existing image and make sure all
existing partitions will not get moved or truncated in the new layout.
This is mostly useful for resizing the final partition or just rewriting
metadata like partition types and labels.
fix(disk_util): Move loop device setup code to generic function
feat(disk_util): Add resize command.

Based on the new gpt update code add the ability to resize filesystems
in existing images. Usually just the last (STATE) partition is resized.
fix(disk_util): Fix mount --read_only option.
fix(disk_util): Rework how code handles existing images.

Read partition size and offset into the normal partition config with the
prefix 'image_' for each key.
feat(disk_util): Add tune command, controlling fs read-only hack.

Now disk_util is aware of the weird ext2 read-only hack, both by
providing a command to manipulate it and support in the mount command to
automatically set the 'ro' mount option for filesystems with it.

Making mount aware of the hack makes it much easier to mount prod
images with a mix read-only and read-write filesystems.
fix(image_to_vm): Move to disk_util, modify images in-place.

Avoid unpacking/repacking partitions by using disk_util's resize and
mount commands. Also simplify assorted bits along the way.