Fix afterDisconnect being called twice, and  new post-disconnect options.

Hi,

The point of this PR is to address the following points:

- Prevent the Launcher's afterDisconnect from being called twice, by closing the Computer's Channel instead.

- Two new options: "Revert and Restart", and "Revert and Reset." This is to ensure the Jenkins slave service/daemon reconnects to the master, and also clear the memory. "Restart" attempts a guest shutdown, followed by a power on.

- Catch the exception earlier when attempting a guest shutdown, to address the case when the VMWare Tools are on (== toolsOk || toolsOld), but aren't responding, and throw an error. This way, a hard power down can still occur.

Thank you