Refactor ShellMenu

Calling method getText() from method select() causes menu item to dispose (menu will be reopen and the old instance disposed). 

This seems to happen only if the menu has more than 2 path items, e.g
WithTextMatchers m = new WithTextMatchers(new RegexMatcher[] {
				new RegexMatcher("Window.*"),
				new RegexMatcher("Show View.*"),
				new RegexMatcher("Other...*") });