widgets/now_playing_mpris: event-driven updates

Use the player "metadata" event rather than a polling interval for
updating the widget. This event should be emitted when the track
changes.

If no player is passed, the widget will poll DBus for players every
second until it finds one.