Snapshot of work-in-progress on refactoring navigator event handling.

This commit essentially works but does not yet support collapsing menu levels (I removed all that code because it was messy).