Implement -t option to zpool create for temporary pool names

Creating virtual machines that have their rootfs on ZFS on hosts that
have their rootfs on ZFS causes SPA namespace collisions when the
standard name rpool is used. The solution is either to give each guest
pool a name unique to the host, which is not always desireable, or boot
a VM environment containing an ISO image to install it, which is
cumbersome.

26b42f3f9d03f85cc7966dc2fe4dfe9216601b0e introduced `zpool import -t
...` to simplify situations where a host must access a guest's pool when
there is a SPA namespace conflict. We build upon that to introduce
`zpool import -t tname ...`. That allows us to create a pool whose
in-core name is tname, but whose on-disk name is the normal name
specified.

This simplifies the creation of machine images that use a rootfs on ZFS.
That benefits not only real world deployments, but also ZFSOnLinux
development by decreasing the time needed to perform rootfs on ZFS
experiments.

Signed-off-by: Richard Yao <ryao@gentoo.org>
This merits some comment. While temporary names are useful for both creation and import, the API for the import case is easier to use than the API for the create case. On import, the API already supported two names and import flags. Consequently, `-t` could just set a bit in the import flags to state that the old name is to be sent to disk. On create, the API only uses 1 name and opts for a nvlist does not support "creation flags", such that we are forced to use the nvlist. We have validation code in userland and a lingering question on my mind is if the import code should handle passing this flag via a nvlist when doing pool import. If it is, then some additional code should be added to spa_import() to handle this. If not, then this userland validation code should to change.