Fix handling of messages and the systray

- Properly handles incoming messages (let xcb drop high bit on
  response_type)

- systray parses ClientMessageEvents "properly" (use event.type and
  event.data)

- systray only tries to set icon for `SYSTEM_TRAY_REQUEST_DOCK` messages
  (see
  http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html)