Refactored to remove some if statements
Refactored numLiveNeighbourCells to one line
Refactored getValidNeighboursAt
Moved modifying cell state to Cell class