Implement ConcBlockingQueue REPR.

Uses separate head/tail locks and a condition variable for waiting for
the queue to contain a value. (The head/tail locks approach comes from
the Michael and Scott paper; naturally, any implementation errors are
mine.)