Lay Out Chain Table Chains Contiguously
Lay Out Chain Table Chains Contiguously

Rather than interleave all of the chain table entries, tying each entry's
position to the corresponding position in the input, this commit changes the
layout so that all the entries in a single chain are laid out next to each
other. The last entry in the hash table's bucket for this hash is now a packed
pointer of position + length of this chain.

This cannot be merged as written, since it allocates temporary memory inside
ZSTD_dedicatedDictSearch_lazy_loadDictionary().

Cyan4973/zstd,Cyan4973/zstd,Cyan4973/zstd,Cyan4973/zstd,Cyan4973/zstd