Make menus only as wide as they need to be. Fixes #853

This stops menus from being annoyingly wide by calculating the menu width to be:

    max_item_text_width + max_hotkey_text_width + padding
Where `padding` is the minimum separation between item and hotkey text. ~~This is currently fixed at 12 units.~~ Oh I should use `GDrawPointsToPixels`

~~P.S: I have no idea what the original intention of `keywidth` was - maybe width was different before pango was used or something.~~

But in debugging, `keywidth` was always equal to `width`, meaning that the menu width was always more than double the minimum width required.

Edit: Looking at the 2012 version, `keywidth` had something to do with calculating the bidirectional text width (which I presume Pango now does), which has since been removed. As `temp` is reused for all width calculations, and that step was removed, `keywidth` was being compared against the item width, which was wrong.