The point here is to make the default implementation close to winex11, supporting a standalone systray window, and then refactor the interface to remove the duplicated code from the user drivers.
-- v3: explorer: Cache the balloon window position. explorer: Support standalone systray window mode. explorer: Use an explicit display constant for hidden icons. explorer: Handle balloon timer in the icons window proc. explorer: Position the balloons relative to the icon windows. explorer: Use the icon windows for their tooltips. explorer: Display the individual systray icon windows. explorer: Create individual windows for the systray icons. explorer: Split systray add/remove from show/hide_icon. explorer: Remove unnecessary displayed icon array.