run vs errgroup

I typically don't do much with concurrency in Go, but messed around this morning with both oklog/run and sync/errgroup.

I've defaulted to using oklog/run in the past, but I realized that while they have similar interfaces, they're useful for different things: