vm: detect migration completed on recovery

If VDSM is down when a migration completes, it will
miss the migration completion event on the
onLibvirtLifeCycleEvent callback, and thus needlessly
wait the full migration timeout before actually
asking libvirt for the domain state and get back in sync.

BZ1104733 provided a quite complex demonstration
of the fact this scenario is unlikely, but possible.

To handle this situation, we
- connect early to the domain, on recovery.
  We know this is safe because on recovery we iterate on
  very domain list libvirt provided to us moments before,
  so the domain will be present.
- inspect the domain state *before* waiting for migration
  termination, and skip the wait if the domain is detected
  running.

A nice side-effect of this patch is also to clarify a tiny bit the
creation flows in Vm._run().

Change-Id: I451c2a940693842e9bf7c63ccc117e75026bb11b
Bug-Url: https://bugzilla.redhat.com/1104733
Signed-off-by: Francesco Romani <fromani@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/28511
Reviewed-by: Dan Kenigsberg <danken@redhat.com>