mpris/properties: make introspect xml a bit more valid
mpris/properties: fix tiny typos/buglets

 * create append iterator for the _reply_ not the incoming message

 * the DICT_ENTRY signature is {sv}, not {s,v}, ',' is not valid in
   signatures
mpris/properties: macros for declaring property_handlers

Welcome to CPP macro hell.

At any rate, this should reduce the amount of typos and churn when
property handlers are adjusted.
mpris/properties: DBusMessageIter-based model for *_get()

Swap the DBusMessage * argument in *_get() for an DBusMessageIter *
one.

This should make implementing *.DBus.Properties.GetAll() a bit easier
as the common code can do the "array of {sv}" part and loop over the
handlers passing a proper container iterator to *_get().

The *_get() implementations themselves won't need to know if they're
called specifically or if someone is just iterating through everything.
mpris/properties: proper DBUS string array construction

dbus_message_iter_append_fixed_array() isn't all that great for
string arrays:

  http://dbus.freedesktop.org/doc/api/html/group__DBusMessage.html

  "The fixed-length types are all basic types that are not string-like."

Ahem.. Do them as proper containers instead.
mpris/properties: guts for org.freedesktop.DBus.Properties.GetAll()

Now all the pieces are in place and we can actually append the
properties in a GetAll() response.

"Yay".