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/Camera.h b/modules/camera/Camera.h
index 53672ae..4c869bb 100644
--- a/modules/camera/Camera.h
+++ b/modules/camera/Camera.h
@@ -59,8 +59,10 @@
         virtual bool isValidCaptureSettings(const camera_metadata_t *) = 0;
         // Separate initialization method for individual devices when opened
         virtual int initDevice() = 0;
-        // Accessor used by initDevice()
-        void setTemplate(int type, camera_metadata_t *static_info);
+        // Accessor used by initDevice() to set the templates' metadata
+        int setTemplate(int type, camera_metadata_t *static_info);
+        // Prettyprint template names
+        const char* templateToString(int type);
 
     private:
         // Camera device handle returned to framework for use