Provide a way to intercept Win32 structured exceptions in async tasks

Something about the stacks created by boost::context prevents global structured exception handlers
from being called.  This allows the user to register a handler which will be called when there
is an unhandled structured exception in async task.
Switch exception handling in win32 to /EHsc