Only evaluate the state after an AI move.

The streak count for the human player is evaluated, but never used. So
check at the start of the evaluation function whether the streak count
of the current player should be updated.
Store the lazy masks in arrays for performance.

Store the lazy mask in arrays instead of lists as the masks are accessed
so often.