Allow control of curtin install unmounting
A Curtin install always unmounts the target. In the subiquity use-case
they would like to support a) if something goes wrong give a shell to
the user to poke around in the target b) skip unmounting automatically
to allow writing of additional files in the target without re-invoking
curtin c) control where curtin mounts up storage devices.
This branch adds two fields to the curtin 'install' config key: The
'target' value is a path that will be used instead of a temporary
directory. The 'unmount' key if found to be present and has the value
of 'disabled' then curtin install will skip the unmount operation.
Additionally to aid in unmounting a target outside of the install
subcommand this branch introduces a curtin 'unmount' subcommand which
takes two params: the 'target' path to the mount point, the default
'target' value is to use the TARGET_MOUNT_POINT environment variable.
Curtin will by default do unmounts in a recursive manner meaning any
directory mounted underneath the target will also be unmounted. A user
may supply '--disable-recursive-mounts' as a flag which will disable
the recursion resulting in a single unmount operation.