Make navigation menus reusable

This change introduces a reusable pattern to create dry menus.

The downside is a *lot* of whitespaces between block elements. After gzip the size increase is not noticeable.

*Edit: The output HTML is unchanged to current solution.*