vmbase: Support generating a Linux image header

Expose a Rust macro to vmbase clients which they can use as opt-in for a
Linux image header to be prepended to their generated binary.

To test this new feature, add an image header to vmbase_example.

Bug: 355696053
Test: m vmbase_example_bin && llvm-objdump -d out/{...}/vmbase_example
Change-Id: I7964d647fb3a068c37edf1beeceed396e879f5a0
diff --git a/libs/libvmbase/example/src/main.rs b/libs/libvmbase/example/src/main.rs
index a01f619..4d535cc 100644
--- a/libs/libvmbase/example/src/main.rs
+++ b/libs/libvmbase/example/src/main.rs
@@ -35,7 +35,7 @@
 use libfdt::Fdt;
 use log::{debug, error, info, trace, warn, LevelFilter};
 use vmbase::{
-    bionic, configure_heap,
+    bionic, configure_heap, generate_image_header,
     layout::{
         crosvm::{FDT_MAX_SIZE, MEM_START},
         rodata_range, scratch_range, text_range,
@@ -48,6 +48,7 @@
 static mut ZEROED_DATA: [u32; 10] = [0; 10];
 static mut MUTABLE_DATA: [u32; 4] = [1, 2, 3, 4];
 
+generate_image_header!();
 main!(main);
 configure_heap!(SIZE_64KB);