qapi: Empty out qapi-schema.json

The previous commit improved compile time by including less of the
generated QAPI headers.  This is impossible for stuff defined directly
in qapi-schema.json, because that ends up in headers that that pull in
everything.

Move everything but include directives from qapi-schema.json to new
sub-module qapi/misc.json, then include just the "misc" shard where
possible.

It's possible everywhere, except:

* monitor.c needs qmp-command.h to get qmp_init_marshal()

* monitor.c, ui/vnc.c and the generated qapi-event-FOO.c need
  qapi-event.h to get enum QAPIEvent

Perhaps we'll get rid of those some other day.

Adding a type to qapi/migration.json now recompiles some 120 instead
of 2300 out of 5100 objects.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20180211093607.27351-25-armbru@redhat.com>
[eblake: rebase to master]
Signed-off-by: Eric Blake <eblake@redhat.com>
diff --git a/.gitignore b/.gitignore
index 42c5799..7f162e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /qapi/qapi-commands-crypto.[ch]
 /qapi/qapi-commands-introspect.[ch]
 /qapi/qapi-commands-migration.[ch]
+/qapi/qapi-commands-misc.[ch]
 /qapi/qapi-commands-net.[ch]
 /qapi/qapi-commands-rocker.[ch]
 /qapi/qapi-commands-run-state.[ch]
@@ -53,6 +54,7 @@
 /qapi/qapi-events-crypto.[ch]
 /qapi/qapi-events-introspect.[ch]
 /qapi/qapi-events-migration.[ch]
+/qapi/qapi-events-misc.[ch]
 /qapi/qapi-events-net.[ch]
 /qapi/qapi-events-rocker.[ch]
 /qapi/qapi-events-run-state.[ch]
@@ -68,6 +70,7 @@
 /qapi/qapi-types-crypto.[ch]
 /qapi/qapi-types-introspect.[ch]
 /qapi/qapi-types-migration.[ch]
+/qapi/qapi-types-misc.[ch]
 /qapi/qapi-types-net.[ch]
 /qapi/qapi-types-rocker.[ch]
 /qapi/qapi-types-run-state.[ch]
@@ -84,6 +87,7 @@
 /qapi/qapi-visit-crypto.[ch]
 /qapi/qapi-visit-introspect.[ch]
 /qapi/qapi-visit-migration.[ch]
+/qapi/qapi-visit-misc.[ch]
 /qapi/qapi-visit-net.[ch]
 /qapi/qapi-visit-rocker.[ch]
 /qapi/qapi-visit-run-state.[ch]