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.

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 almost always more than double the minimum width required.