Killer move heuristics

Implemented Killer moves
https://chessprogramming.wikispaces.com/Killer+Heuristic.

The store is 30 depth x 2 moves, where replacement policy is least
recently updated. The Move Ord, Eq instances were broken, which needed a
fix in order to filtering on insertion work. Replaced iterateMoves with
withKiller. Feels like we need to abstract out the common pattern from
these higher order functions.