Add the beginnings of the menu system

Still in testing phase. Once testing has been completed a refactor will
begin to seperate out components.