hash: package for rolling hashes

The LZMA encoder requires to maintain a hash of byte sequences of the
length 2, 4 and maybe 3. For efficient computation rolling hashes are
the right approach. The hash package will at least provide the
Rabin-Karp rolling hash and a Cyclic Polynomial rolling hash.

The package will provide a Roller interface that all rolling hashes will
have to support. The general methods like computing all hashes for a
byte slice will work with that interface.
hash: implemented and tested the rabin-karp rolling hash

The commit defines the roller interface and the ComputeHashes function.
hash: implemented cyclic poly

I also added the benchmark code. Rabin-Karp is slightly faster probably,
because it doesn't require a memory lookup.

To make it faster I will modify the Roller interface to contain a single
function Hashes and remove ComputeHashes.
hash: simplified interface to the rolling hashes and accelerated them

Both rolling hashes support now the Hashes method that computes all
hashes for a byte sequence. This function simplifies the the interface
of the rolling hashes and accelerates the computation of the rolling
hashes for the byte sequence.