Add wrapper around browser.swapDocShells() to correctly handle detached tabs
So hacks in toggleTabPrivate() aren't needed anymore.
And handle "drop" event only in SeaMonkey.
Wait for "load" instead of "DOMContentLoaded"
Remove workaround for window title
(742e35c298d9500720fac281eb8362afda93eab4)
Remove useless persistTabAttributeOnce() call
toggleTabPrivate() => "PrivateTab:PrivateChanged" event => setTabState() => persistTabAttributeOnce()
Reduce logging
Workaround for pending tabs: manually change tab attribute in session
+ "workaroundForPendingTabs" preference
Better error message for nsIStringBundle.GetStringFromName() failure