got rid of all uses of strerror

This required some minor refactoring of other things and there were some
other small cleanups I noticed along the way.
diff --git a/aos/common/die.cc b/aos/common/die.cc
index 4c579cd..e1b3b07 100644
--- a/aos/common/die.cc
+++ b/aos/common/die.cc
@@ -38,8 +38,8 @@
     return r;
   } else {
     fprintf(stderr, "aos fatal: asprintf(%p, \"thingie with %%jd\", %jd)"
-            " failed with %d (%s)\n", &filename,
-            static_cast<intmax_t>(getpid()), errno, strerror(errno));
+            " failed with %d\n", &filename,
+            static_cast<intmax_t>(getpid()), errno);
     return std::string();
   }
 #endif
@@ -68,8 +68,8 @@
         vfprintf(error_file, format, args2);
         fclose(error_file);
       } else {
-        fprintf(stderr, "aos fatal: fopen('%s', \"w\") failed with %d (%s)\n",
-                filename.c_str(), errno, strerror(errno));
+        fprintf(stderr, "aos fatal: fopen('%s', \"w\") failed with %d\n",
+                filename.c_str(), errno);
       }
     }
   }