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.