feat(image_to_vm): Add new and improved qemu wrapper script.

This one is more automagical and sets up ssh keys from ssh-agent and the
user's home directory by default. Also adds an option for setting the
ssh port so it can be something other than 2222. Script should be
sufficiently portable, tested in bash, dash, and ash.
Merge pull request #89 from marineam/qemu

feat(image_to_vm): Add new and improved qemu wrapper script.
Merge pull request #88 from polvi/ami-test

test(ami-test): basic script for testing ami and bootstrapping
feat(test_ami): Add support for finding AMI by version.

This makes chaining the build and test ami scripts together easier.
Merge pull request #90 from marineam/ami

feat(test_ami): Add support for finding AMI by version.
fix(build_image): Don't over-size root partitions in base images.

Right now the initial (pre image_to_vm) images oversize the root
partitions, creating the expected 1GB filesystem in a 2GB partition.
image_to_vm later shrinks the partition back down to match. Just start
out with 1GB partitions to begin with instead.
cleanup(build_image): Remove some unused flags.

Remove --verity_*: Unused, we don't support verity
Remove --usb_disk: Unused, we use PARTUUID now.
Remove --enable_serial: Unused, and serial is enabled for syslinux
remove(verify_rootfs_chksum.sh): Unused, we don't use verity.
fix(cgpt.py): Remove broken 'expand' feature.

This currently does nothing because our state partition is not partition
number 1. Even if it did we don't really needed it since we rely on
expanding on boot instead.
fix(build_library): Remove GPT writer scripts, call cgpt directly.

This change removes /usr/sbin/write_gpt.sh from images which we have no
use for. This allows us to drop the indirection of writing partition
tables by first writing out a script to call. Now cgpt.py can call cgpt
directly to initialize the partition layout. This opens the way for
further improvements to how disk images are created.
fix(build_library): Remove usb and factory_layout partition layouts.

These are just cluttering things and adding an element of "how does this
work?" because base_image_util was defaulting to the "usb" layout in
some places and "base" in others.
fix(gen_tmpfiles): Don't include /var/tmp, systemd defines this one.
cleanup(gen_tmpfiles): Move to build_library
churn(build_library): Change lots of stateful references to state.

For consistency we are using 'state' these days, not 'stateful'. While
I'm mucking around in this code it seems like a good time to switch.
fix(build_library): Create disk image first instead of last.

This avoids the need to dd individual filesystem images into a complete
disk image, just mount the partitions directly from a loop device
covering the whole image. This does add the requirement that mkfs run as
root but that isn't a problem.
Merge pull request #92 from marineam/images

Lots of image building updates
fix(test_ami): Bump socket startup timeout to 90 seconds.

I've observed networking between ec2 instances not start working for
somewhere between 40-50 seconds earlier today which caused the test to
fail despite the fact that everything came up properly eventually.
Upping to 90 seconds should better cope with the surprises Amazon has to
offer.
Merge pull request #93 from marineam/timeout

fix(test_ami): Bump socket startup timeout to 90 seconds.
added autotest testing to test_ami
feat(build_library): put all of the partition stuff behind a flag

this lays the groundwork for supporting a cpio img which doesn't have
partitions.