LiveMerge: Add block job info to VM stats

Live merge operations are transient jobs.  This means that once started,
qemu and libvirt only know about them as long as they are running.  As
soon as they finish an event may be emitted but then all traces of the
block job are gone.  In order to work with transient jobs of this nature
the manager (engine) needs to know two pieces of information: 1) Is my
job still running, and 2) once it has stopped, did it succeed or fail.
This patch provides a reliable answer to the first question.  When a new
block job is created, the engine will supply a UUID to represent the job
and this UUID will be persisted by vdsm along with other identifying
information.  When collecting VM stats, only VM disks with an associated
job ID will be checked for block jobs.  All active block jobs will be
returned in the stats.  When a block job expires, the job ID is removed
from the VM conf and it will no longer be reported.  Due to caching of
stats, care must be taken to properly refresh the job information in a
thread-safe way when a new job is created.  Vdsm must guarantee that any
jobs created will always be represented in calls to getVmStats that
happen after a call to the future merge verb.

Change-Id: Ia7278c0f06a2a06c8a8d680cf64746de3f73a389
Signed-off-by: Adam Litke <alitke@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/26634
Reviewed-by: Federico Simoncelli <fsimonce@redhat.com>
Reviewed-by: Francesco Romani <fromani@redhat.com>