full multi-process generations

spawn separate processes for counting neighbors and for updating each
generation. outputs kinda wonky. gotta fix the print_board functions