liblzma: SHA-256: Do the byteswapping without a temporary buffer.
liblzma: SHA-256: Unroll a little more.

This way a branch isn't needed for each operation
to choose between blk0 and blk2, and still the code
doesn't grow as much as it would with full unrolling.
liblzma: SHA-256: Remove the GCC #pragma that became unneeded.

The unrolling in the previous commit should avoid the
situation where a compiler may think that an uninitialized
variable might be accessed.
liblzma: SHA-256: Optimize the way rotations are done.

This looks weird because the rotations become sequential,
but it helps quite a bit on both 32-bit and 64-bit x86:

  - It requires fewer instructions on two-operand
    instruction sets like x86.

  - It requires one register less which matters especially
    on 32-bit x86.

I hope this doesn't hurt other archs.

I didn't invent this idea myself, but I don't remember where
I saw it first.
liblzma: SHA-256: Optimize the Maj macro slightly.

The Maj macro is used where multiple things are added
together, so making Maj a sum of two expressions allows
some extra freedom for the compiler to schedule the
instructions.

I learned this trick from
<http://www.hackersdelight.org/corres.txt>.
Update THANKS.
liblzma: Use lzma_memcmplen() in the BT3 match finder.

I had missed this when writing the commit
5db75054e900fa06ef5ade5f2c21dffdd5d16141.

Thanks to Jun I Jin.
liblzma: Add support for lzma_block.ignore_check.

Note that this slightly changes how lzma_block_header_decode()
has been documented. Earlier it said that the .version is set
to the lowest required value, but now it says that the .version
field is kept unchanged if possible. In practice this doesn't
affect any old code, because before this commit the only
possible .version was 0.
liblzma: Add support for LZMA_IGNORE_CHECK.
xz: Add --ignore-check.