refactor to replace std::list with an array

Until now, for almost every call to resolve() an instance of std::list
was generated. I consider this wasteful, es the full capabilities of
std::list weren't even needed.
Thus, the candidates are now stored in a fixed-size array.
generating 500000 puzzles in the test executable

Generating an enormous number of puzzles
to demonstrate the speed of puzzle generation.
removed now-useless include

std::list is no longer used, header doesn't need to be included anymore
improve makefile