add option to hide empty menu items, refs #23
support infinite number of submenus
Merge branch 'infinite_submenus' into install