Put all move generation into one function
Rename check detection class
Prune moves that result in check from the list returned by the move generator