Move CreateAndRunEnvelopeForMain to weavetest
While looking at handling the last few remaining unhandled errors for #90 I noticed that two of those unhandled errors are in Babysitter.CreateAndRunEnvelopeForMain. The errors are returned by Run functions that run in goroutines (Envelope.Run, EnvelopeConn.Run). In the production code path these errors are handled (at least logged), but in weavertest they are dropped. I'm opening this PR to get your thoughts on one option for handling these errors.
The only caller of Babysitter.CreateAndRunEnvelopeForMain was weavertest.initMultiProcess, so I started by inlining CreateAndRunEnvelopeForMain into the caller. This removed the need for the dontGC package-level variable. The references to the unused os.File are held by a closure passed to t.Cleanup. This should prevent them from being GC'ed (the tests in weavertest/internal appear to confirm).
I'll add some comments inline about how this change might make it easier to manage the lifecycle of goroutine from weavertest.Init.
Mind rebasing and squashing?
No problem, all done!