Red- Added a test to verify the behavior when a cell has three neighbors
Green- now pass the test of three neighbors of one live cell
Green- Test added for one live cell with one neighbor must die
Red- test added to support one dead cell with three live neighbors must live
Green- production code added to support one dead cell with  three live neighbors must live, but this change makes the test nextGenerationOfOneLiveCellWithTwoNeighborsMustLive, because this change makes become live one more cell in this case
Refactor- changing method names and extracting methods for more readability
Refactor- Created a new class Cell to encapsulate some behavior of the cell, and now the grid is of cells instead of strings
Refactor- Created a new class CellsGrid to encapsulate some behavior of the grid of cells
Refactor- Encapsulating of cell behavior into CellsGrid
Refactor- Now that all the calls to Cell are inside the CellsGrid and seeing that the only thing inside the Cell is a boolean that indicates if the cell is live or is dead i can change that for polimorphism with the new clases DeadCell and LiveCell
Refactor- Moved all logic for finding the neighbor of a cell to its own class with static methods and low refactor to become methods and classes tin