Add support for reading concatenated .xz files.

Pass the LZMA_CONCATENATED flag to lzma_auto_decoder(). This changes the
semantics of the decoder slightly (it must be LZMA_FINISHed at the end
of the stream). Update xz.Decompressor.Read() accordingly, doing some
refactoring in the process to clarify the error handling.