modules: camera: Metadata refactor

Add* functions const to protect data being added.
Initiailze metadata object from a camera_metadata_t.
Remove template-specific constructor.
Add convenience "add1" method to abvoid stack-allocated data.
Construct templates manually (in ExampleCamera) from base.

Change-Id: I3201f61e9d32841ea7a769d69242b40d8727c02e
diff --git a/modules/camera/ExampleCamera.h b/modules/camera/ExampleCamera.h
index 9d6a9c0..45c4a94 100644
--- a/modules/camera/ExampleCamera.h
+++ b/modules/camera/ExampleCamera.h
@@ -35,6 +35,12 @@
         camera_metadata_t *initStaticInfo();
         // Initialize whole device (templates/etc) when opened
         int initDevice();
+        // Initialize each template metadata controls
+        int setPreviewTemplate(Metadata m);
+        int setStillTemplate(Metadata m);
+        int setRecordTemplate(Metadata m);
+        int setSnapshotTemplate(Metadata m);
+        int setZslTemplate(Metadata m);
         // Verify settings are valid for a capture with this device
         bool isValidCaptureSettings(const camera_metadata_t* settings);
 };