Add event loop application starter

New application starter reads a configuration file with the list of
applications and their properties (arguments, binary name, etc.) and
manages starting and restarting them. The status of applications are
reported on an event loop channel and they can be controlled with a
separate starter_cmd tool.

Change-Id: I7691840be38dc28887e48efcdff7926590710eb7
diff --git a/aos/configuration.fbs b/aos/configuration.fbs
index cdf21b8..bfac6a2 100644
--- a/aos/configuration.fbs
+++ b/aos/configuration.fbs
@@ -111,6 +111,11 @@
 table Application {
   // Name of the application.
   name:string (id: 0);
+
+  // Path of the executable relative to starter. If this field is unset, use
+  // name as the path. Not permitted to change while starter is running.
+  executable_name:string (id: 5);
+
   // List of maps to apply for this specific application.  Application specific
   // maps are applied in reverse order, and before the global maps.
   // For example
@@ -135,6 +140,9 @@
   // The user to run this application as. If this field is unset, run it as
   // the current user of the application starter.
   user:string (id: 3);
+
+  // List of arguments to be passed to application
+  args:[string] (id: 4);
 }
 
 // Per node data and connection information.