Handle multiple monitors properly

The previous way we fetched desktop dimensions only reported the main
screen. This was causing the chat window to snap onto the main screen,
instead of staying where the user put it. Now we fetch the dimensions of
whatever desktop a window is on.  Toasts will now follow the main window
onto secondary screens, which is nice.