Add sanity check.

- The info list can in fact be NULL so we need to guard against that. This
  wouldn't currently get hit though, since the cases where the list isn't
  passed in are those where we only want a minimal frame anyways, so
  variable/return value creation wouldn't even be attempted.
Style fixes.
Cache app icons in BarInfo to make them load faster.

This turns an IO bound problem into a CPU bound problem. In my testing this
speeds up icon resizing dramatically although the CPU is quickly pegged at
100% trying to redraw the Deskbar if you whip the icon size slider back and
forth with a dozen or so apps open and soon the CPU can't keep up and Deskbar
lags behind.