create swap device with requisite block size as to avoid read-modify-write under swap pressure
default password is password
Fix "cannot import pool on boot"

We create the pool, then import it in a QEMU VM, to generate the proper
initramfs.  When we do this, the device path /dev/sdX gets baked into
the initramfs' zpool.cache.  Needless to say, when booting on a system
with a different disks configuration, this fails import.  Unfortunately,
removing the zpool.cache for some reason causes import to fail with
'pool may be in use by another system', no matter what we try or how we
configure hostid.  And using the /dev/disk/by-id path does not work
either, because we support the creation of image files, which then
appear to QEMU as ID "QEMU VIRTUAL DISK", which means that when the
image file gets transferred to an actual physical device, it won't
actually boot because its /dev/disk/by-id path will have changed.

So we do the Solomonic solution: when we do the boot setup in QEMU, we
refuse to create the zpool.cache file, and then in the kernel command
line of the final system we use a new feature in
github.com/Rudd-O/zfs that allows the zfs_force parameter to have
a value "ifnocache".  If said value is present, then the pool import
will be forced.  This allows the bootable image to work in every system
just fine, until such time that the initial RAM disk is regenerated
in the final running system, upon which time the boot will not be
forced, because a valid zpool.cache will be present in the initramfs.

I hate this whole "cannot import pool may be in use".