Attempt to catch exceptions inside async blocks

Related to #483.

Sometimes we've got `UnresolvedPathReferenceNoRange` from FCS. Since it's reraised by async implementation, I hope to catch it by `Async.Catch`. Let me know if it is of any help.

The ultimate solution of course is to protect against that exception in FCS.
Likewise here.  I'd also rename StartSafe to StartInThreadPoolSafe since you've got the chance to clarify this.