Button hudget

Depends on #588

Buttons with std::function Callbacks, implementation example in hud.cpp
I don't intuitively grab what BACKWARDS and SPHERE_STRAIGHT mean. Maybe comment on them.