Move Thread classes from Tracker to shared

So that they may be utilized outside of Tracker
MenuField: Filter out additional MouseDown messages.

...while mouse is down on a menufield

This makes it so that you can't open 2 menufields simultaneously
by clicking and holding the right mouse button on one menufield while
clicking a second with the the left mouse button opening it.

This matches the behavior on BeOS R5.

Should help with #6408 comment:9
DeskBar: refactor expander code.

With the Tracker thread code in shared now it is possible to use the same
trick for the expanders in Deskbar to open and close in a separate thread
that we use in Tracker. See Find Panel and Info window for examples
of the code being used in Tracker.

Also eliminates the fClickedExpander variable and allow you to expand with any
mouse button.

Hopefully fixes #9676