replace the complicated keccak.cpp implementation with some more sane code by Andrew M. Verified for identical results. This should port much easier to CUDA.