Child writer to allow objects to be written to a threaded writer from multiple
threads, allowing parallel feeding of data. It takes a reference to the
original thread writer, so it needs to be used with std::thread::scope. The
original writer still needs to be closed, and this design ensures that the
original cannot be closed until all the children are finished.