modified queue to support blocking using conditional variables and signalling

Ignore-this: 976f0e0482cd423ee7c9ee4c995dc797

darcs-hash:20130329225808-c21fe-33ccf0afe22e4271fc1ded9e149937d2eeff8d0f
rolling back conditional variable change that didn't work

Ignore-this: 3afd7b8db247ff1a7feb0e6ccfa6a60c

darcs-hash:20130330025131-c21fe-82056a6d2eb4f1468493c19f556fc310ce9986b5
util/queue now supports blocking pop

Ignore-this: d70743d00972acd953d4a456bb4c584f

A friend suggested I add a blocking pop using a conditional variable to eliminate
some busy waits.

This was a good idea, so I did that.

No noticable performance change, though there is ever slightest
reduction in cpu usage. There are still busy waits in the code.
Some place I can do something similar to remove them. Other places will require
busy waits and polling, for instance, ui thread. At least for now.

darcs-hash:20130330024403-c21fe-87d76dbed7344c434047934ed019c07c2602da03
removed stray cerr

Ignore-this: 144cf375c3937c5f5d8a75ca8f2a4e19

darcs-hash:20130330024639-c21fe-69f7e53d45797943678c114d363c87ab045a7dc9
fixed merged conflict with previous bad blocking code

Ignore-this: 3ce3480cfec182c981176616aef3232a

darcs-hash:20130330025836-c21fe-ef27f13752cbad28c808dab983de5eaa5663070f