Noborder: don't shortcircuit applysizehints.

Because of its side effects, we must check for applysizehints first and then for bw changes.
Merge branch 'noborder'
Systray: more robust sizing strategy.

The previous strategy was setting a preferred dimension based on bh and the current size
of the client, then adjusting it by calling applysizehints, then forcing some hard
constraints upon the result. There was a bug due to the fact that applysizehints would
force both width and height to be at least bh. This may be ok for the rest of dwm but not
for the systray. Moreover, the strategy was a bit too complex.

I made the following simplifications:

* I avoided the call to applysizehints. AFAIK real world tray apps just set minw and minh
  in a sequence of exploratory hinting. It's better to treat this case in a more ad hoc
  fashion.

* I just take into account the hints, I don't care about the current geometry of the
  client. The two criteria overlap and it's not clear how to prioritize them.

What the new strategy does is:

* If minh is in the range [bh-0.15*bh, bh] (that is, if minh is close enough to but
  not greater than bh) use it as h. If not, use bh as h.

* If minh and minw are both set, calculate the ratio a = minw/minh and set w = a * bh.
  If not, set w = bh.

* When updating the systray center the icons vertically.

There is an aesthetic trade-off: show all the icons the same height (bh) or show the icons
with a hinted size. The first alternative is consistent, the second one neither scales nor
clips icons. This new strategy stands midway between both alternatives.
Merge branch 'systray'