got an IPC stress tester that actually works

I had to write it in C++ to get it to actually exercise processing power
instead of disk IO. Also, I had to tweak some timeouts etc in some of
the tests to avoid random false failures.
diff --git a/aos/common/mutex_test.cpp b/aos/common/mutex_test.cpp
index d9327a1..6ab7ed6 100644
--- a/aos/common/mutex_test.cpp
+++ b/aos/common/mutex_test.cpp
@@ -110,7 +110,7 @@
 #ifdef __VXWORKS__
     // Without this, all of the "task ... deleted ..." messages come out at
     // once, and it looks weird and triggers an socat bug (at least for
-    // Squeeze's version 1.7.1.3-1).
+    // Squeeze's version 1.7.1.3-1) which locks it up and is very annoying.
     taskDelay(index_);
 #endif
   }
@@ -138,7 +138,7 @@
 #ifdef __VXWORKS__
   static const int kWarmupCycles = 1000, kRunCycles = 60000, kMaxDeviation = 20;
 #else
-  static const int kWarmupCycles = 30000, kRunCycles = 3000000, kMaxDeviation = 10000;
+  static const int kWarmupCycles = 30000, kRunCycles = 3000000, kMaxDeviation = 20000;
 #endif
 
   int cycles[kThreads];
@@ -166,8 +166,8 @@
   for (int i = 0; i < kThreads; ++i) {
     variance += (cycles[i] - expected) * (cycles[i] - expected);
   }
+  ASSERT_GT(variance, 0);
   double deviation = sqrt(variance / kThreads);
-  printf("deviation=%f\n", deviation);
   ASSERT_GT(deviation, 0);
   EXPECT_LT(deviation, kMaxDeviation);
 }