Menu abstracted to allow multiple customized menus

Popped states are not cleaned as this will remove all stored
buttons/backgrounds
States still cleaned when game exits