Rewrite code updating navigation.rb (second try) [2/2]

We re-generate navigation.rb fully now, instead of updating it live
(which can easily break if navigation.rb gets touched by someone).

Previous pull request got reverted because it broke ISO building. A small change was added to possibly fix this.

Crowbar-Pull-ID: b3dce9bdc2a011a0cfdac699d5a850ba419f3cc3

Crowbar-Release: pebbles