Fix proxy authentication failing on Mono.

When a system wide proxy is configured for all https requests then a
requesting a url such as https://www.nuget.org/api/v2 would fail to
request proxy credentials on Mono so the user would not be prompted.
Instead the request would be retried 10 times and then fail.

This only affects https requests. A request made to a http url such
as http://www.nuget.org/api/v2 would request the proxy credentials
from the credential provider.

With Microsoft's .NET Framework a WebException is thrown with:

    WebException.Status = ProtocolError
    WebException.Response.StatusCode = ProxyAuthenticationRequired

Exception call stack:

System.Net.WebException:
    The remote server returned an error: (407) Proxy
Authentication Required.
   at System.Net.HttpWebRequest.GetResponse()

On Mono a WebException is thrown with:

    WebException.Status = SecureChannelFailure
    WebException.Response = null

Exception call stack:

System.Net.WebException: Error getting response stream (The remote server
returned a 407 status code.): SecureChannelFailure ---> System.Exception:
    at
System.Net.WebConnection.HandleError(WebExceptionStatus st, System.Exception e,
System.String where)
   at System.Net.WebConnection.CreateTunnel(System.Net.HttpWebRequest request,
System.Uri connectUri, System.IO.Stream stream, System.Byte[] ByRef buffer)
   at System.Net.WebConnection.CreateStream(System.Net.HttpWebRequest request)
   at System.Net.WebConnection.InitConnection(System.Object state)
   at System.Net.WebConnection.<WebConnection>m__20(System.Object state)
  at System.Net.WebConnection.HandleError (WebExceptionStatus st,
System.Exception e, System.String where) [0x00000] in <filename unknown>:0

To handle this there is now a special case which checks the exception
message for the string 'The remote server returned a 407 status code.'
when running on Mono.
Fix XDT remove transforms failing on Mono.

Source code fix:
https://github.com/mrward/xdt/commit/b2c3b5383d589c3f79650a0cab93f88a8741b057

Running an xml transform using xdt:Transform='Remove' would fail
on Mono with a null reference exception.

The XmlElementContext TargetNode would be null in Mono resulting
in a null reference when the name of the node was logged. This
would only occur if the original xml node existed.

Microsoft.Web.XmlTransform.XmlNodeException: Object reference not set to an instance of an object ---> System.NullReferenceException: Object reference not set to an instance of an object
  at Microsoft.Web.XmlTransform.Remove.RemoveNode ()
  at Microsoft.Web.XmlTransform.Remove.Apply ()
  at Microsoft.Web.XmlTransform.Transform.ApplyOnce ()
  at Microsoft.Web.XmlTransform.Transform.Execute (Microsoft.Web.XmlTransform.XmlElementContext context, System.String argumentString)
  --- End of inner exception stack trace ---
  at Microsoft.Web.XmlTransform.XmlTransformationLogger.LogErrorFromException (System.Exception ex)
  at Microsoft.Web.XmlTransform.Transform.Execute (Microsoft.Web.XmlTransform.XmlElementContext context, System.String argumentString)
  at Microsoft.Web.XmlTransform.XmlTransformation.HandleElement (Microsoft.Web.XmlTransform.XmlElementContext context)