replaced ALIVE/DEAD constants with keywords
remove neighbors method; changed living_neighbors to return number of living neighbors of a cell
renamed update_cell to more descriptive next_cell_state since it only returns the state but does not set it
made a bunch of methods private
world can now be any rectangle
updated documentation at top