refactor reboot/on/off/destroy dispatching to type-specific code
use VMController in update_vm_status