Replace Game of Life board iteration with numpy optimized operations