C++ std::vector<T> and Rust std::vec::Vec<T> support

Add basic std::vector and std::vec::Vec support across FFI boundary.
diff --git a/demo-cxx/demo.h b/demo-cxx/demo.h
index fafc474..eea0af7 100644
--- a/demo-cxx/demo.h
+++ b/demo-cxx/demo.h
@@ -15,10 +15,12 @@
 };
 
 struct SharedThing;
+struct JsonBlob;
 
-std::unique_ptr<ThingC> make_demo(rust::Str appname);
+std::unique_ptr<ThingC> make_demo(::rust::Str appname);
 const std::string &get_name(const ThingC &thing);
-void do_thing(SharedThing state);
+std::unique_ptr<std::vector<uint8_t>> do_thing(SharedThing state);
+JsonBlob get_jb(const ::rust::Vec<uint8_t>& vec);
 
 } // namespace example
 } // namespace org