Adding support for incus storage volume mount
Fixes #1632
I have added the capability for mounting custom storage volumes when they are not attached to an instance. The scope is limited to custom storage volumes of the FS type.
On the API side, I added a new endpoint storage-pools/{poolName}/volumes/{type}/{volumeName}/sftp to return an SFTP connection that will serve that volume. Then on the incusd side, I added a handler very similar to the instance SFTP handler that starts an SFTP server that serves the files at the mountpath of the volume in the MountTask context, and then when the connection is closed it will unmount and stop the server.
On the client side, I make a request to that API to get a connection to the newly spawned server, and then similarly to the instance file SFTP mount I use sshfs to mount the volume on the path specified in the command line argument.
I was able to make, and then make a FS custom storage volume, mount it using the incus storage volume mount command, and then modify its contents, unmount it, and see that the contents had disappeared from the mount point.
I think this meets the core functionality that was requested in the issue, please let me know what else needs to be done!