Add cancel support. The idea is that a DeleteSlice() with our internal
cancel option, will stop a CreateSliver() in its tracks. We stop the monitor, then cleanup the slice. I also added an optimization for tearing down large numbers of VMs on shared nodes, previously we were doing them one at a time. Note that only the Portal is going to use this option, since it loosely depends on code in the XEN clientside (described in another commit).