Explicit HTTP Basic Auth if credentials specified in URI

This patch allows HTTP credentials specified in the URI to flow through to the HttpWebRequest.

The manual header-setting method is used to avoid an extra round-trip; doing this via NetworkCredentials objects/etc would have meant .Net would generate an extra initial unauthenticated HTTP request to check if it really needs to use the supplied credentials.