HttpRequestMessage should accept URI string beginning with '/'.

This PR will solve an issue described below.

```csharp
var client = new HttpClient() { BaseAddress = new Uri("http://github.com") };
var content = async client.GetStringAsync("/");
```

`GetStringAsync("/")` on the code snippet above throws on Mono, due to the following reasons.
- The parser of Mono's Uri class interprets uri strings beginning with '/' as UNIX file paths and mark them absolute (`uri.IsAbsoluteUri == true`) unless specified as relative.
- HttpRequestMessage.RequestUri rejects absolute and non-http(s) Uris.

Such a behaviour of Uri class is incompatible with the original .NET. However, changing the Uri behaviour can be painful, so changing that of HttpRequestMessage would be better.
Don't use regex in this code