Optimization: Only check live cells

Previously checked for all cells
Now world will contain an array of living cells
Reproduce method now only checks for the living cells and their neighbors