Fix data corruption in LZMA2 encoder with flushing or preset dictionary.

Process pending match finder data when flushing or finishing
is requested. Previously it was done only when new data was
added and only if enough data was added to make it possible
for the encoder to encode at least one byte. But if flushing
or finishing was requested after adding a few (but not enough)
bytes, the pending data wasn't processed and the match finder
got out of sync (and could make an assertion fail if assertions
were enabled).

Bug report:
http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/7796400
1 file changed