Fix handling of messages and the systray

* Properly handles incoming messages

* systray parses ClientMessageEvents "properly"

* systray only tries to set icon for `SYSTEM_TRAY_REQUEST_DOCK` messages (see http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html)