Implement advanceGeneration()

- Implemented loop to check neighbouring cells and advance the grid one
generation
- Implemented boolean logic to check for and (hopefully) handle edge
cases that would otherwise cause out of bounds exceptions

WARNING: This method is completely untested