Feature/10330 threadpool working with clang

Clang lacks openmp and currently runs everything serially. The ThreadPool class only depends minimally on openmp (determining the number of processors and managing logging from individual threads) and therefore is easy to get working with clang. I also replaced PARALLEL_CRITICAL macros in LoadEventNexus and EventWorkspace with mutexes that will behave the same with and without openmp.    

testing: code review double-checking there aren't other algorithms where using the threadpool without openmp might create a race condition. Verify that tests still pass, including those currently disabled in ThreadPoolTest.h.  

http://trac.mantidproject.org/mantid/ticket/10330