doc: Add design doc for detached file-based disks

Add a design doc regarding the attachment/detachment of file-based disks. This
doc highlights the issue of disk ownership at the filesystem level and proposes
a way to implement it correctly.
config: Add SetDiskLogicalID function

This function changes the logical_id of a disk.
cmdlib: Create wrapper for GenerateDiskTemplate

Create a wrapper (_GenerateDiskTemplateWrapper) for the GenerateDiskTemplate
function. This wrapper includes all the necessary functions (in the context of
LUInstanceSetParams) that collect the arguments for GenerateDiskTemplate.

This wrapper is created as preparatory work for the patch regarding the
ownership of file-based instance disks.
filestorage: Enable the Rename action

Allow the 'Rename' function, which practically moves a file from a given path to
a new one. Also, add the necessary checks to ensure that the new path is
acceptable.
cmdlib: Rename file disk in attach/detach

When detaching a file disk from an instance, move it out of the instance's
directory. When attaching a file disk to an instance, move the disk to that
instance's directory. In both cases, update the logical_id to store the path
where the disk will be stored.
tests.filestorage: Test if rename works properly

Test if the Move operation, which is called by 'Rename', of FileDeviceHelper
works as intended.
tests.cmdlib: Test detach/attach for file disks

Check if the detach/attach operation works as intended for file-based disks. We
check this by looking if the logical_id is changed properly after each action.