Tracker: use layouts.

This commit also fixes a regression (I didn't look at git-blame to
find out from when) that "dynamic_cast<BDeskWindow*>(this)" when run
in the constructor will always return NULL. I just added a "bool
isDeskWindow" to BContainerWindow's constructor that is only set to true
by BDeskWindow.

Sorry this commit is so big, but I couldn't figure out how to do this
incrementally without breaking things.