added puzzle id function
fixed bug where up and down where flipped in the moves function
replaced hashing with structural comparison. Hashing had collisions that led to wrong solutions
added puzzle solution verification routines
added puzzle verification into runner