Unify and simplify the navigation code

This change:

- moves some navigation view code out of the application helper
- folds access permission checking to the `Section` classes