Extracted WebClient creation into a separate method so that it could be tested a wee bit...

... and then gave the client the ability to set their own IWebProxy instance.  

I know this team [wink wink] that needs this functionality.  They need to set the WebProxy conditionally, only for contacting certain external services such as Raygun, based on a URI stored in an application configuration file, however setting the WebRequest.DefaultWebProxy (which I think has a scope that spans the current AppDomain) just for Raygun causes problems elsewhere in the system, when making separate calls to other systems for which the WebProxy is not used and needs to be avoided.

This change might obviate the previously existing code in the RaygunClient.CreateWebClient() "else if" branch, but I have not been able to fully deduce the intent behind the WebRequest.DefaultWebProxy.GetProxy() call, and so this decision should be pointed out to, but left to the discretion of the reviewer.  

Thank you!