storage: use existing {pool, dataset} or create it
storage: use existing {pool, dataset} or create it

So far one could either:

- create a completely new zfs pool
- use an existing dataset

With this commit users will also be able to:

- give LXD an existing pool <pool_name> and LXD will use it
- give LXD a non-existing dataset and have LXD create it. (For example, when
  given "tank/lxd" where "lxd" does not already exist, LXD will now create "lxd"
  in "tank" and use it as a storage pool.)

Signed-off-by: Christian Brauner <48455ab3070520a2d174545c7239d6d0fabd9a83@ubuntu.com>

stgraber/lxd,georghopp/lxd,mjeanson/lxd,georghopp/lxd,lxc/lxd,techtonik/lxd,pcdummy/lxd,hallyn/lxd,techtonik/lxd,jsavikko/lxd,erikmack/lxd,atxwebs/lxd,atxwebs/lxd,stgraber/lxd,lxc/lxd,lxc/lxd,techtonik/lxd,pcdummy/lxd,hallyn/lxd,Skarlso/lxd,lxc/lxd,erikmack/lxd,stgraber/lxd,stgraber/lxd,lxc/lxd,atxwebs/lxd,erikmack/lxd,lxc/lxd,stgraber/lxd,lxc/lxd,Skarlso/lxd,mjeanson/lxd,georghopp/lxd,jsavikko/lxd,atxwebs/lxd,Skarlso/lxd,pcdummy/lxd,hallyn/lxd,hallyn/lxd,jsavikko/lxd,hallyn/lxd,stgraber/lxd,hallyn/lxd,stgraber/lxd,Skarlso/lxd,mjeanson/lxd