Encoded the menu structure with an abstract description in abstractui

This makes the menu structure independent of the GUI framework in use.
Added the ability to have separators in abstract menu descriptions.
Added a separator before the "Quit" menu item.
Added the ability to have keyboard shortcuts in abstract menu descriptions.
Added Ctrl+O as a shortcut for File->Open.