If a stream has compressed_size == uncompressed_size, WOF assumes it's
uncompressed. As a workaround, we need to re-write the stream as uncompressed
if this ever happens.
This requires adjusting the DONE_WITH_FILE messages to be fired after writing
each stream, not after reading each stream.
We also need to loosen the check for whether the input stream is in a solid
block or not.
Finally, this commit also makes the DONE_WITH_FILE messages work in more cases
--- when appending to a WIM, and when the file hashes are already known.