Introduce fixed worker threads to share jobs

As in the previous commit's comments, creating a thread for each LOD patch
is very inefficient.  We introduce fixed worker threads who collabolatively
share jobs.  'Collaborative' here means that free workers gets new job
before busy ones.

Also fixed the issue that the program crashes on exit by *not* destroying
thread objects in the destructor.  There might be a correct way to free
them, but my laziness disallow me searching it.