Fix race condition in InternetOpenUrl() use
Fix race condition in InternetOpenUrl() use

InternetOpenUrl() typically returns a null handle in async use and then
provides the handle by calling the status callback. It’s possible that
the callback gets called even before InternetOpenUrl() call returns or
very shortly afterwards.

In that case, it would be possible for context.conn to be still NULL,
causing a crash when trying to fill its handle field. Fix this by making
sure the pointer is valid before calling InternetOpenUrl(). Also be
careful not to overwrite the handle if already set.

Fixes #117.

Herve-M/winsparkle,drizt/winsparkle,drizt/winsparkle,Herve-M/winsparkle