Rebuild application menu bar less. Fixes #8539 (I hope)

Instead of destroying and rebuilding the application menu bar each time we
change state, create it at startup and then only update it from there on. This
means that bugs that rely on the app bar being constantly destroyed and rebuilt
will be much less likely to occur.

Unfortunatly, there is still one case where the application menu bar is being
destroyed and recreated and that is when you are switching between horizontal
and vertical mode, and that is because a menu bar cannot be altered from
B_ITEMS_IN_ROWS to B_ITEMS_IN_COLUMNS anywhere but in the constructor.

* Renamed fExpando to fExpandoMenuBar
* Updated TExpandoMenuBar to be more flexible after construction, the menu
  items are built in the new BuildItems() method. Also, don't pass the BarView
  object in at contruction, that can happen in AttachedToWindow(). Also, set
  fDeskbarMenuWidth just once at constructor, no reason to keep setting it over   and over again.