Add zobrist key methods for transposition tables

This commit adds several methods for use in the
implementation of the zobrist key algorithm, as well
as creating a state hash which is updated following each
move.