vm: consider 'action' when handling I/O errors

When VDSM receives an I/O error event from libvirt,
it does not consider the value of the 'action' callback
field, and thus considers the guest CPU stopped.

This is true in the default configuration, which translates
to the disk write error policy 'stop', but not necessarily
true if the said policy is 'enospace'.

In this case the reported state of the CPU goes out of sync.

Since the error policy may be changed through an hook,
the safest thing to do is actually check the 'action'
value as reported by libvirt in the IOError callback.

This patch adds this check, and additional logging in
the case the guest CPU is reported running after I/O
errors.

Change-Id: I9299399c3e5bef7e6e3111aa35e3483827ad57da
Bug-Url: https://bugzilla.redhat.com/1064630
Signed-off-by: Francesco Romani <fromani@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/25157
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Tested-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/26023
Reviewed-by: Vinzenz Feenstra <vfeenstr@redhat.com>
Reviewed-by: Michal Skrivanek <michal.skrivanek@redhat.com>
Reviewed-by: Yaniv Bronhaim <ybronhei@redhat.com>