fixed some bugs

The API for the condition variables was broken, so I changed that and
then fixed RawQueue to use it correctly. I also found a bug in the
condition variable implementation using the tests.
diff --git a/aos/atom_code/ipc_lib/condition.cc b/aos/atom_code/ipc_lib/condition.cc
index f65c67d..c67ea5f 100644
--- a/aos/atom_code/ipc_lib/condition.cc
+++ b/aos/atom_code/ipc_lib/condition.cc
@@ -6,8 +6,6 @@
 
 namespace aos {
 
-static_assert(shm_ok<condition_variable>::value,
-              "all C structs really should work in shared memory");
 static_assert(shm_ok<Condition>::value, "Condition should work"
               " in shared memory");
 
@@ -18,11 +16,11 @@
 }
 
 void Condition::Signal() {
-  condition_signal(&impl_);
+  condition_signal(&impl_, &m_->impl_);
 }
 
 void Condition::Broadcast() {
-  condition_broadcast(&impl_);
+  condition_broadcast(&impl_, &m_->impl_);
 }
 
 }  // namespace aos