Lots of refactoring in thread.c and target-thread.lisp to
reuse the existing putting-threads-on-queues code for both
condition variables and mutexes. Happily also this lets us
punt some of the OAOOM struct definitions as we now only need
struct mutex in Lisp