Support stopping & starting Vagrant instances.

Note that I switched from using Mutex to Monitor because Mutex isn't re-entrant.  With the lifecycle hooks in place it was too tricky to guarantee there would be no dead locks, so I went with the safer construct, even if it is a tad slower.