sp: improve masterMigrate safety

The goal of this patch is to clean, optimize and give robustness to
the masterMigrate method.

In this patch:
- acquire the cluster lock before start using the new master filesystem
- refactor out all the required metadata changes in switchMasterDomain
- divide the method in two parts (operations required to switch to the
  new master and previous master cleanup)
- address the two parts exception handling (hard failure for the first,
  logging only for the second)

Change-Id: I155b36d41df43230f99ba610699bba05bee3f0c0
Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/22419
Reviewed-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-by: Ayal Baron <abaron@redhat.com>