full introspection support for QMP

Introduces new monitor command to query QMP schema information,
the return data is a dynamic and nested dict/list, it contains
the useful metadata to help management to check feature support,
QMP commands detail, etc.

I added a document for QMP introspection support.
(docs/qmp-full-introspection.txt)

We need to parse all commands json definition, and generate a
dynamic tree, QMP infrastructure will convert the tree to
json string and return to QMP client.

So here I defined a 'DataObject' union in qapi-schema.json,
it's used to describe the dynamic data struct.

TODO:
Wenchao Xia is working to define QMP events to qapi-schema.json,
then event can also be queried.

I will introduce another command 'query-qga-schema' to query QGA
schema information, it's easy to add this support with current
current patch.

Signed-off-by: Amos Kong <akong@redhat.com>