core: refactor failure to run vm flow - part 5

This patch is a preliminary step before removing
MigrateVmCommand#reportCompleted:
- Move the call to freeLock to RunVmCommandBase#reportCompleted
- Extract the code that actually ends the command's monitoring job/step
  to separate method. RunVmCommand & RunVmOnceCommand used to override
  RunVmCommandBase#reportCompleted just to change the way the job/step
  is ended, so they are now override the new method instead.

Change-Id: Ib02c6a37333785845e6e8246b1a8f4c326e9049d
Signed-off-by: Arik Hadas <ahadas@redhat.com>