UploadStringAsync cancel

**Problem**: UploadStringAsync not triggering UploadStringCompleted on cancellation.
**Cause**: Exceptions thrown by UploadString are encapsulated into a WebException.
**Fix**: Check if caught exception's InnerException is ThreadInterruptedException.