Refactoring of the python multiprocessing code to use queues load balancing based on apply_async();
Use the returned result by apply_async() to fetch compile_worker() results and get rid of python queues;
Optimize the threads handling code
Reuse compile threads via self.mp_pool