[Ide] Make parent handling more consistent in MessageService

Add more overloads that allow specifying a parent.

Overloads without a parent should, instead of passing RootWindow,
pass null. This will resolved to a valid parent later.
[Ide] Improve dialog auto-parenting logic

More complete version of fix from @slluis:

"When showing a message dialog, use the current top level window
as TransientFor window. Without this, message dialogs are always
parented to the main window, and that causes focusing problems
when working with other top level windows, such as floating
documents."

BXC21008 - On Canceling close action for floating window,
floating editor window should not disappear from top