WIP: Created a BScrollMenu class that works like BMenuWindow but works on a view instead of a window. Use this to implement a scrollable BarMenuBar in Deskbar. The basics work but there are issues still with sizing and other issues.

Modify the ScrollMenu class to use the layout kit by adding a constructor that doesn't take a view.

Get the BScrollMenu class to follow the size of the BMenu it is a parent of. Adjust the scrollers to appear in the right places. This is a WIP but it works in Deskbar, next step is to integrate this directly into BMenu with the scrollers as children of the menu instead of as children of the BScroller class.

Rebase changes on top of master

Deskbar scrolling works for the most part, just need to fix the
bottom arrow and clean up a bit.
Make ScrollMenu not rely on Menu.cpp

Rename ScrollMenu.cpp to MenuScrollView.cpp

Half step towards making this class work as part of Deskbar without
extending any other classes. Scrolling works both with mouse and
scroll wheel. Redraws on scroll, need to make that work better.
Also need to move classes out of the Interface Kit and into Deskbar.
Make the MenuScrollView a fixed size...

instead of trying to make it follow fExpando just make it a fixed
size on creation. It is invisible and extends to the bottom of the
screen. fExpando grows inside it, and the window follows fExpando.
When the window grows taller than the screenframe the arrows are
added. You can scroll with the mouse wheel, but I haven't yet gotten
scrolling to work from clicking. Deskbar still crashes when going
from Mini mode to vertical expando mode. I have no idea why.
Tweaks, remove dead code. Menu and Menubar are stock again.
Set fValue and fLimit to be 0 in the MenuScrollView contructor.
Renamed BMenuScrollView to TScrollArrowView and moved it into Deskbar

Also gave the Up Arrow and Down Arrow a scroll arrow. The up arrow works
but the down arrow doesn't because the sibling menu is stealing the
MouseDown event."
Make the lower arrow a child of the menu instead.

When you scroll, make the lower arrow scroll the same way to give
the illusion that it isn't moving at all.

So, now both arrows scroll on MouseDown, but, Deskbar crashes on
resolution change.
Detach the scrollbars before deleting fExpando.
... when rebuilding the application bar.

This fixes a Deskbar crash on resolution change because the lower
scrollbar is a child of fExpando so it must be removed and deleted
before fExpando is. So the tear down is remote scroll arrows
(if attached) then remote fExpando, then remove the scroll arrow
container view. The application bar is then rebuilt in reverse.
Replace a deleted comment, check parent is not NULL before using it.
Rename ScrollArrowView to InlineScrollView

InlineScrollView takes a BView instead of a BMenu as well, and it
no longer has flags to do drawing respond to frame changes since
this view does neither of those things.
Add left and right Scrollers and also an orientation parameter. Set the limit based on the view bottom and not the window bottom.
WIP: Add support for horizontal scrolling.
Make horizontal scrolling work in Deskbar

* Split the Leaf menu and seperator into their own menubar.
* I got rid of a lot of special cases for horizontal in the
  ExpandoMenuBar class because now the menubar contains the same
  items as in vertical mode. However, it also means that the dreaded
  <none> bug also affects horizontal mode.
* Make the application menubar resize itself even in horizontal mode.
  This means that the view background shows through so I'm going to have
  to fix this up.
* Calculate when to add the scroll arrows and how much to allow the user
  to scroll by for horizontal. CheckItemSizes() got a big refactoring.
* Rework the InlineScrollView class a bit. It no longer requires you to
  specify the begin and end limits on construction because it can
  calculate them instead. It also no longer depends on the screen at all,
  this means this class can be extened to be used more generally and in
  more places.
Set the scroll arrow limit based on the min menu item widths

... rather than the current menu item widths. This means that
Deskbar will shrink the menu items until they are at their minimum
size before it activates the scroll arrows. Previous to this
change the scroll arrows were being turned on prematurely. Also
lower the minimum menu item width to the icon width + 50pixels which
is arbitrary but looks good to my eye.
Cleanup
Draw a nice menu background on the inline scroll view and when scroll faster when you push control/option/command and click the little arrow button.
Make sure that you remove the separator item before adding the team menu in mini mode or it won't work all the time
Need to position window before checking for scrolling.

Otherwise when you switch from bottom mini mode to vertical expando mode
you'll get scroll arrows when you shouldn't because the bottom of the
window frame will be below the screen.
Shrink icon only width a bit to make room for more icons

...before turning scrolling on.
Fix Deskbar crash when scroll arrows are removed.

fExpando is added and removed from InlineScrollView only and it is
created and destroyed in BarView only. Before this there was a
case where it was removed in both InlineScrollView and BarView
causing a crash from the double remove