Flush ObjectOutputStreams after construction

This protects against deadlocks between the writing and reading end, since the ObjectOutputStream constructor writes a header, but does not flush, and the ObjectInputStream constructor reads the header, and blocks until it's read.