BControlLook: Add methods for getting insets

* Update the previously unused frame_type and background_type enums.
* Add methods GetFrameInsets(), GetBackgroundInsets(), GetInsets() to
  get the insets for a given frame type, background type, or both
  respectively.
BControlLook: Add DrawLabel() variants with icon

A label, a bitmap, or both can be specified.
BControl: Add icon support

The icon is meant as an addition to or replacement of the label. Icon
bitmaps for various states of the control (off, on, partially on, each
enabled or disabled, plus up to 125 custom states) can be set
individually via SetIconBitmap() (getter IconBitmap()).
The convenience method SetIcon() can be used to set the bitmaps for the
standard states from a single bitmap; it also supports cropping the
icon to its non-transparent area. Code borrowed from BIconButton.
BControl subclasses: Override SetIcon()

... and implement Perform() action for potential later use.
BButton: Add icon support

* Remove non-BControlLook drawing code. It's just an annoyance to
  maintain.
* Update Draw() and _ValidatePreferredSize() to add icon support.