Record monitor connect/disconnect events.

Each time we receive an XEvent we diff the list of currently connected
monitors with the list of previously connected monitors. Any
differences are recorded using the event recorder API. It is possible
that there will be no differences to record because XEvents are sent
for more events than just monitor connects and disconnects.

[endlessm/eos-sdk#635]
It's `m@ay`; I tried `@may` and it crashed. Here is the relevant documentation:

"The first way is used with format strings starting with 'a', 's', 'o', 'g', 'v', '@', '*', '?', 'r', '&', or '^'. In all of these cases, for non-maybe types, g_variant_new() takes a pointer to a non-NULL value and g_variant_get() returns (by reference) a non-NULL pointer. When any of these format strings are prefixed with an 'm', the type of arguments that are collected does not change in any way, but NULL becomes a permissable value, to indicate the Nothing case." ~ https://developer.gnome.org/glib/stable/gvariant-format-strings.html#gvariant-format-strings-maybe-types