Bug 893324 - Invoke CleanUp synchronously and unconditionally for modal dialog windows. r=jst

Historically, we've had a bunch of complicated machinery to delay the call to
CleanUp() for modal dialogs, since we needed to harvest the return value after
the window closed. But in the current world we don't actually null out
mReturnValue in CleanUp() at all, which presumably happened sometime around the
time mReturnValue became cycle-collected. So this stuff can just go away. \o/

That simplification is righteous in itself. But it also fixes the bug here as-
filed. When the user quits while a modal dialog is currently being displayed,
a failure code ends up bubbling up through windowWatcher to the OpenInternal call
in nsGlobalWindow::ShowModalDialog, which means that we're unable to do our
delayed CleanUp() call for the outer modal window. At first it seemed like a hard
problem to solve, but with the above it becomes trivial.