SudokuPrinter: store a list instead of an array
generator: use a thread pool

The current code blocks the UI thread briefly if the generator threads
do not finish in order. Oh and it's also not safe.