Fix issue 10: Uncompressible data causes overrun

lzma_code() doesn't automatically handle the case where data doesn't compress
well. Unfortunately the only way to do this with liblzma API is to use single-
call block encoder, but that wouldn't let us re-use the lzma_stream.

So we roll our own uncompressed-block output, based on the LZMA spec. It's
ugly, but it works.