Implements a platform abstraction for a condition variable

- Updates the blocking queue to use the new mutex and condition variable
  abstractions.
- Removes noncopyable from the //util:util target due to a cyclic
  dependency.

Change-Id: I97540b2322ff1492a4c3241b4984e4feb1a916f3
11 files changed