Work in progress, menu.hpp is new menu, button.hpp is going to be button base class, collapsable button will be derived from it
New menu system improved.
Even more changes. Major issue: Textures are not being drawn correctly. I will elaborate when I got some sleep, 4am -.-
Fix textures not being loaded correctly. For whatever reason we have to pass the string to the constructor and load it from there on, I guess some scope issue with SFML.
Some code style changes, a missing break after a switch case and some clean-up. Time to leave! :)
Solved textures not loading correctly without having to let the button load
them itself. It's quite stupid of me, to be honest. The Button needs a
REFERENCE TO THE TEXTURE, not a reference to a reference to a texture -_-.
sf::Sprite::setTexture(sf::Texture&) just saves a reference to the given sf::Texture& at m_texture.
If I get a sf::Texture instance converted from a reference at the constructor of Button(), and I pass that to setTexture, the reference to that instance is different from the reference it was created from!

This marks the Menu system "working", so we can start converting the menus from MenuManager into states with a Menu like MainMenu, and the LevelEditor should be able to work using this too.
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.
Implement a menu for the level editor. One thing left to do is make it possible to select the buttons that open up when you click the 'Tiles' button (thus the one with child buttons). I do not understand the currently given error. Also get rid of some (now) unused files, clean up some code and codestyle and random and minor improvements here and there.
Temporarily comment out the compile error line (and as a temporarily solution, from now on F7-F9 will set the selected tile). In addition, from now on clicking on a newly placed tile will properly pick it up, pressing your mouse button now places your current selection (if any) and fix compile in leveleditormenu.cpp.
From now on hovering over places tiles in the level editor only makes one of them go transparent at a time, also clean up some codestyle (minor).