core: fix disk image json serialization/deserialization

Change-Id: Id40ef08ea341e6abf2bd5e6e815bb79814141c20
Signed-off-by: Liron Aravot <laravot@redhat.com>
core: remove vm - remove VM during execute

When removing vm the operation is done as synchronized operation, task
is created for each disk and then the vm is removed from db.
In order to deal with engine crash, in the end method a roll forward is
performed in case that the vm still exists (the vm is being deleted and
it's disks are being marked as illegal).
This logic is unneeded and can cause to a bug, in case of deleted vm and
imported vm with the same id, this can cause that the imported vm would
be
deleted from the db as the deletion tasks would end - therefore this
logic is being removed.

this patch contains the following changes:
1. the first step is to remove the vm, lock all the disks - in case of
failure they will be in ILLEGAL status.
2. added a boolean member indicating whether RemoveImage should lock the
image.
3. RemoveAllVmImages shouldn't fail in case of failure to create a task
for deletion, the engine should continue and try to delete the other
images- this change also prevents a storage leak in removing vm and
templates from export domains.
4. RemoveAllVmImages returns a list of disks it failed to remove,
instead of querying the db again.

Change-Id: I7a3e497e52471f7255e6c17b59a2e3bf362b8783
Signed-off-by: Liron Aravot <laravot@redhat.com>
Signed-off-by: Allon Mureinik <amureini@redhat.com>