shell: Clean up layout recalculation a bit.

Now we resize iframes when updating the navigation elements, since it
always needs to happen at the same time anyway and in the right order.

Additionally, the layout is recalculated after every change of the navbar.