Move optional.h to webrtc/api/

We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
diff --git a/webrtc/api/BUILD.gn b/webrtc/api/BUILD.gn
index 2e3d77a..86a63e4 100644
--- a/webrtc/api/BUILD.gn
+++ b/webrtc/api/BUILD.gn
@@ -207,6 +207,17 @@
   ]
 }
 
+rtc_source_set("optional") {
+  sources = [
+    "optional.cc",
+    "optional.h",
+  ]
+  deps = [
+    ":array_view",
+    "../rtc_base:rtc_base_approved",
+  ]
+}
+
 rtc_source_set("libjingle_peerconnection_test_api") {
   testonly = true
   sources = [
@@ -266,6 +277,7 @@
     }
     sources = [
       "array_view_unittest.cc",
+      "optional_unittest.cc",
       "ortc/mediadescription_unittest.cc",
       "ortc/sessiondescription_unittest.cc",
       "rtcerror_unittest.cc",
@@ -280,6 +292,7 @@
     deps = [
       ":array_view",
       ":libjingle_peerconnection_api",
+      ":optional",
       ":ortc_api",
       "../rtc_base:rtc_base_approved",
       "../rtc_base:rtc_base_tests_utils",