Button hudget

Depends on #588

Buttons with std::function Callbacks, implementation example in hud.cpp
that's embarrassing, should definitely not have made it into the pr...