Dynamic default metadata based on templates

Instead of controls picking their own defaults,
a delegate taking a mapping of template : desired default
is taken instead. These defaults are honored if able.

BUG: b/31017806
TEST: unit tests pass, multiple CTS tests fixed, test app runs.
Change-Id: I8212580c9aee1d7fe223fa6b3ff17a6cfb97552f
diff --git a/modules/camera/3_4/Android.mk b/modules/camera/3_4/Android.mk
index 1211a08..8e3c85a 100644
--- a/modules/camera/3_4/Android.mk
+++ b/modules/camera/3_4/Android.mk
@@ -57,6 +57,7 @@
 v4l2_test_files := \
   format_metadata_factory_test.cpp \
   metadata/control_test.cpp \
+  metadata/default_option_delegate_test.cpp \
   metadata/enum_converter_test.cpp \
   metadata/ignored_control_delegate_test.cpp \
   metadata/map_converter_test.cpp \