grooved-mmkeys: better use of glib API
player: don't use a separate thread for the player event loop

Instead this uses mpv's wakeup pipe along with the glib main event loop to get
notifications from the player.

This makes the player code more consistent with the rest, and maybe even easier
to understand.