Introduce a "callback" type in dawn.json

This replaces all instances of "natively defined" with callbacks and
adds information about the callbacks arguments so that their typedefs
can be autogenerated in dawn.json.

Also adds all the methods using callbacks to the list of handwritten
client commands so that the wire templates don't try to generate code
for them.

BUG=dawn:22

Change-Id: I30ce01e3e688a16b31efa74d0c94ebafdca00985
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/13901
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/dawn.json b/dawn.json
index 8101144..af922ec 100644
--- a/dawn.json
+++ b/dawn.json
@@ -167,7 +167,12 @@
         ]
     },
     "buffer create mapped callback": {
-        "category": "natively defined"
+        "category": "callback",
+        "args": [
+            {"name": "status", "type": "buffer map async status"},
+            {"name": "result", "type": "create buffer mapped result"},
+            {"name": "userdata", "type": "void", "annotation": "*"}
+        ]
     },
     "buffer copy view": {
         "category": "structure",
@@ -189,10 +194,22 @@
         ]
     },
     "buffer map read callback": {
-        "category": "natively defined"
+        "category": "callback",
+        "args": [
+            {"name": "status", "type": "buffer map async status"},
+            {"name": "data", "type": "void", "annotation": "const*"},
+            {"name": "data length", "type": "uint64_t"},
+            {"name": "userdata", "type": "void", "annotation": "*"}
+        ]
     },
     "buffer map write callback": {
-        "category": "natively defined"
+        "category": "callback",
+        "args": [
+            {"name": "status", "type": "buffer map async status"},
+            {"name": "data", "type": "void", "annotation": "*"},
+            {"name": "data length", "type": "uint64_t"},
+            {"name": "userdata", "type": "void", "annotation": "*"}
+        ]
     },
     "buffer map async status": {
         "category": "enum",
@@ -600,7 +617,12 @@
         ]
     },
     "error callback": {
-        "category": "natively defined"
+        "category": "callback",
+        "args": [
+            {"name": "type", "type": "error type"},
+            {"name": "message", "type": "char", "annotation": "const*"},
+            {"name": "userdata", "type": "void", "annotation": "*"}
+        ]
     },
     "error filter": {
         "category": "enum",
@@ -646,7 +668,11 @@
         ]
     },
     "fence on completion callback": {
-        "category": "natively defined"
+        "category": "callback",
+        "args": [
+            {"name": "status", "type": "fence completion status"},
+            {"name": "userdata", "type": "void", "annotation": "*"}
+        ]
     },
     "fence completion status": {
         "category": "enum",