storage: Split setParent volume operations

For efficiency on block domains we store a volume's parent UUID in two
places: as an LV tag on the Volume LV itself, and in the metadata LV of
the block domain.  For file domains the parent UUID is stored only in
the volume's metadata file.  This works fine now but when we introduce
live merge we will have a problem.  On block domains the LV tag can only
be updated by the SPM and the metadata LV can be updated by the HSM
host.  On file domains, the metadata file can only be updated by the HSM
host.  When a live merge completes we will need to update the volume
chain as soon as possible to match what qemu is actually using.  In
order to do this from the HSM host (where the live merge completes) we
need to split setParent into two parts.

setParentMeta can always be called by the HSM host that is running the
VM and by an SPM if the volume is not in use.

setParentTag must only be called by the SPM.

A common implementation of setParent is added to the Volume base class
and will ensure compatibility with all existing callers of setParent.

In the live merge case, we will call setParentMeta when the merge
completes and will call setParentTag from the deleteVolume SPM verb
where we actually remove the merged volume.

Change-Id: I679a04fddce7257eb87532986ec9ef2d11b23139
Signed-off-by: Adam Litke <alitke@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/27949
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>