Implement SharedTextureMemory and SharedFence on Metal

Bug: dawn:1745
Change-Id: I150244f45e01c12a0d62264c0ea68ed11b0d7c19
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142403
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/dawn.json b/dawn.json
index e1fea45..1b00ca8 100644
--- a/dawn.json
+++ b/dawn.json
@@ -1473,7 +1473,7 @@
                 "name": "create texture",
                 "returns": "texture",
                 "args": [
-                    {"name": "descriptor", "type": "texture descriptor", "annotation": "const*"}
+                    {"name": "descriptor", "type": "texture descriptor", "annotation": "const*", "optional": true, "default": "nullptr"}
                 ]
             },
             {