vmdk: Fix %d and %lld to PRI* in format strings

Signed-off-by: Fam Zheng <famz@redhat.com>
qapi: Allow setting default values for optional parameters

In command definition, 'default' is now parsed as a dict of default
values. Only optional parameters will have effect in generated code.

'str' and 'int' are supported, both need single quote in the schema. In
generated code, 'str' will be converted to g_strdup'ed pointer, 'int'
will be identically set.

E.g.

    { 'command': 'block-commit',
      'data': { 'device': 'str', '*base': 'str', 'top': 'str',
                '*speed': 'int' },
      'default': {'base': 'earthquake', 'speed': '100' } }

will generate

    int qmp_marshal_input_block_commit(Monitor *mon, const QDict *qdict, QObject **ret)
    {
        ...
        bool has_base = true;
        char * base = g_strdup("earthquake");
        ...
        bool has_speed = true;
        int64_t speed = 100;

Signed-off-by: Fam Zheng <famz@redhat.com>