pdLabel: automatically set UC height when "fit caption to UC area" layout is used
pdLabel: add optional back color override

Normally we'll want to pull the label's back color from pdTheme, but in
a few odd places (e.g. the canvas status bar), a different color may be
in use.  This override allows the control's owner to assign a different
backcolor, as necessary.
pdDIB: do not allow 0x0 DIBs to be created

I'm not actually sure how the API handles 0x0 requests, but it could
lead to leaks, so force any creation requests to 1x1 at minimum.
pdLabel: improve drawing behavior, especially during program load

The main canvas UC loads very early in the load process, meaning some
global elements (like the theme object) may not be ready just yet.
pdLabel now handles these situations gracefully.
pdCanvas: convert status bar to pdLabel

This solves a number of long-standing status bar issues, including:

- No more flicker on mouse coordinate updates (yay!)
- Too-long messages will now auto-shrink to fit the display area.
- If a message is too long to physically fit the status bar area, and we
can't shrink the font further, the caption will be truncated and
ellipses will be appended.