engine: Compare and set instead of updateVdsDynamic in VM scenarios

The following patch should solve a following problems:
1. Deadlock between RunVmCommandBase.decreasePendingVms and VdsUpdateRuntimeInfo.AfterRefreshTreatment
   line with code: ResourceManager.getInstance().getEventListener().processOnVmPoweringUp(...);
2. Replace get for vds dynamic , update some values, and after that update in db by single db update.
   The old way creates a dirty state fot host status field, fix will reduce a noise in host life cycle
   scenarios
3. Performance improved: less db access, less locks acquired, no deadlocks

What is not solved (problems which were before and should be solved in next patches)
1. Race between VdsManager.OnTimer() and RunVmCommandBase.decreasePendingVms()
2. RunVmDelayer.evaluated can be based on not updated data
3. Interaction of loop over
   ResourceManager.getInstance().getEventListener().processOnVmPoweringUp(...)
   inside VdsUpdateRuntimeInfo.AfterRefreshTreatment with RunVmCommands - it is a war for locks, or
   "code of death" for all system during RunVm scenarious

Change-Id: I363afc5c3411b0c13e6d6c9ed5b16004738b6ca7
Signed-off-by: Michael Kublin <mkublin@redhat.com>