Refine definition of a weak pawn so that it includes pawns that
whose advance is eventually blocked by enemy pawns (formerly code
only looked at square immediately ahead of the pawn).
Memory leak fixes:
Call pthread_join for polling thread when terminating.
Destroy Search instances on thread pool termination.