Now uses less memory and bug fix

I'm pretty sure it is suppose to hash(garlic || column number (0 to 2 ** garlic - 1) || previous r || r[reverse(i)])

The first __Hash4 was with "i" but "i" was never reset to 0 so its value was "c". I replaced "i" with "c" in my previous commit because it looked a little obfuscated. Now that I'm looking it I'm sure the first __Hash4 should be with 0.

I did some benchmarks and for me it's a little more than 2% faster.