Copy flatbuffers efficiently and respecting DAGs.

Deduce the memory region needed to be copied by traversing the DAG, and
then copy it.  This has no mallocs (yay!), and works with DAGs.

There are some cases where we actually want to copy things recursively.
Do that when asked.

Change-Id: Ia0ffde26d569fa92ee2bbb49706c17d9d657d125
diff --git a/aos/json_to_flatbuffer.fbs b/aos/json_to_flatbuffer.fbs
index 8c0402c..ad2c901 100644
--- a/aos/json_to_flatbuffer.fbs
+++ b/aos/json_to_flatbuffer.fbs
@@ -37,6 +37,7 @@
   name:string;
   priority:int;
   maps:[Map];
+  long_thingy:uint64;
 }
 
 table VectorOfStrings {