core: prevent split brain caused by fence commands

This fix aims to run fence command mutually exclusive.

RestartVds is running Stop, FenceManually and Start. This flow
is marking VMs as down and playing them again on other hosts.

2 parallel calls to this flow or interleacing RestartVds with other Stop
or FenceManaually could end up marking again VMs whic currently starting
up by flow 1 as down, causing them to start and new instance on other
host and leading to 2 instances of the same VM.

To Achieve this mutually exclusive run:

* Added exclusive lock on VDS_FENCE + vdsId on RestartVds, Stop, FenceManually and Start commands
* Shared the lock from parent RestartVds with childs Stop, FenceManually and start
* overriden freeLock() method of Stop, FenceManually and Start to release the lock only if
we have been invoked without RestartVds as a parent command

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1026811
Change-Id: Iaf021010188e3c3662fbf8a057da4c58f2600c02
Signed-off-by: Roy Golan <rgolan@redhat.com>