Gluster: minimal implementation

Add Gluster to Ganeti by essentially cloning the shared file behaviour
everywhere in the code base.
Gluster: add GlusterVolume class

In order for Ganeti to manage Gluster volumes, Ganeti needs to know
what a Gluster volume is to begin with. This class models one.
Gluster: change mount point location to configure-time value

This commit changes the mount point of Gluster devices to an (almost)
arbitrary place (subject to the restrictions of
_GetForbiddenFileStoragePaths checks.)

This introduces complexity around the entire system of file path
allowance checking in Ganeti, as now the allowed storage paths depend
on the specific disk template in question.
Gluster: automatically un/mount gluster volumes

Allow Ganeti to manage mounts of Gluster volumes autonomously.
Gluster: FIXME: add userspace access support

Add support for the QEMU gluster: protocol
Gluster: add requirements to install.rst
Gluster: announce in NEWS

Add the relevant line to NEWS