Initial game of life commit. Current implementation works fine but is ugly and could use refactoring