Change the name from AbstractCell to Cell, because I prefers composition over inheritance
The state can acces the cell's method while iterating
Add getters and a useful method
Correct initialisation errors
Correct an error due to a bad parameter name
Add a method to list all neighbors cells
Modify states methods to implement the game of life