Allow setting a custom icon in a button

I had forgotten I had another independent change queued up; here it is if you want it.

I didn't find a way to get rid of the `inner-border` from C, although there seems to be a way to do it if you're specifying the interface using XML files. Consequently, all buttons are drawn with a padded border around the supplied icon. (You can eliminate the visible outer boundary using the commented-out setting of `:relief`, but hovering over the button shows you that this doesn't really do what I intended.) So it seemed best to just live with the border; it's not a big deal, and indeed Tk produces a similar result.