Added support for Button and CollapsableButton to change the callback after
creation. Also added an implementation of Menu to create the main menu and
level selection menu, and added a state to glue them together. MainMenu and
LevelSelectionMenu are a kind of template for a menu with predefined
buttons and textures, but they can be changed by the owner and the owner
can set the callback function for the buttons. This way, an
instance of level selection can also be created in the level editor for
example, and set different callbacks.