Add V4L2 Format Metadata Factory.

This factory queries the device for the properties detailing
what formats it supports. Since this may fail, Metadata/V4L2Metadata
was moved from the weird inheritance/constructor stuff it was doing
to Metadata having a better constructor and V4L2Metadata being a
factory.

BUG: 30140438
TEST: unit tests pass

Change-Id: Id4bcb27fbd8b517e3a9a8e9fb8a984af139254b3
diff --git a/modules/camera/3_4/Android.mk b/modules/camera/3_4/Android.mk
index ae28598..140e73b 100644
--- a/modules/camera/3_4/Android.mk
+++ b/modules/camera/3_4/Android.mk
@@ -39,6 +39,7 @@
 
 v4l2_src_files := \
   camera.cpp \
+  format_metadata_factory.cpp \
   metadata/enum_converter.cpp \
   metadata/metadata.cpp \
   stream.cpp \
@@ -46,10 +47,11 @@
   v4l2_camera.cpp \
   v4l2_camera_hal.cpp \
   v4l2_gralloc.cpp \
-  v4l2_metadata.cpp \
+  v4l2_metadata_factory.cpp \
   v4l2_wrapper.cpp \
 
 v4l2_test_files := \
+  format_metadata_factory_test.cpp \
   metadata/control_factory_test.cpp \
   metadata/control_test.cpp \
   metadata/enum_converter_test.cpp \