Refactor a bunch of menu code - menu 'settings' can now be implemented
per-menu context