Fixes to the threadpool
Don't free the tp->threads
struct when not allocated (1 thread).
Also set the function when logging one thread (otherwise we don't
get the function names in log).
More testing to check 1 thread behaviour and different numbers of threads. Tweak output to make progress more obvious.