Machine object holds VirtualMachines which should be emptied upon proper processing of service removal events.
When Machines.removeMachine is called, it will only be removed if it no longer holds VirtualMachines.
On calls from DefaultAdmin to remove services, we should remove the service before calling processMachineOnServiceRemoval.
This affects the following paths in DefaultAdmin:
removeGridServiceAgent, removeLookupService, removeGridServiceManager, removeElasticServiceManager, removeGridServiceContainer
This should also fix regression tests which timeout on waiting for machine to disconnect, because the mechanism waits for Machine removal.