Merge from 4.3: CLOUDSTACK-4810: Enable hypervisor snapshots for CloudStack-managed storage (for XenServer and VMware)
Merge from 4.3: CLOUDSTACK-5468: Configuration property should be optional
CLOUDSTACK-669: covert VMsnapshot orchestration flows to make them be serialized with other VM operations
CLOUDSTACK-669: Convert volume snapshot orchestration flow to make it be serialized with other VM operations
Fix a style-check problem after cherry-pick
CLOUDSTACK-669: Finalize VM work dispatching mechanism to avoid big switch statement
Fix auto-merge caused issues
Fix a typo caused problem in attach-volume process
CLOUDSTACK-5669: Always retrieve the most recent job result in OutComeImpl
CLOUDSTACK-5726: Using runtime discovered dao (in AsyncJobManagerImpl.submitAsyncJob) to persist record has a problem to locate the right DAO instance, it causes corrupted field value be stored in database. Put in a work-around fix first to always initialize record fields in all cases
CLOUDSTACK-5767: Remove the logic of using underlying job related fields for volume specific logic.
CLOUDSTACK-5725: put origin flow context id into log4j context prefix to link jobs with the orchestration work flow in logging
CLOUDSTACK-5672: Fix VM work job serialization issues in Add/Remove nic
CLOUDSTACK-5752: Use pesudo job context when API dispather directly calls into orchestration flow
CLOUDSTACK-5765: cleanup internal serialization and exception propagation issues
Merge from 4.3: CLOUDSTACK-4810: Enable hypervisor snapshots for CloudStack-managed storage (for XenServer and VMware)