Import MessageBox safely

The call to MessageBox must be 'safe' as window messages will still be sent to the calling application's window procedure (if it has one) while in the call to MessageBox.  This may trigger Haskell code to be called before the foreign function returns.

In addition, if the call is 'unsafe' this will block all other Haskell threads in the system (when using the -threaded runtime in GHC) until the user interacts with the message box.  This precludes any multi-threaded programming.