Tidy up colour-selection logic

A step in the direction of making the available-colours-only code less broken. Throwing half the code away can only make the problem easier to spot, I suppose, but I'm out of time for now (and this is useful to land by itself, really)

Note in particular the fun bug in BitmapCombo: it would destroy lists that were being unassigned from it. This is pretty odd behaviour, and it was probably a voodoo-programming workaround to this problem that led to the weird code duplication in lobby.lua.