Adding method to request a refresh token

Closes #47. You still typically need to subclass and override GetInitialUrlAsync:
```
public override Task<Uri> GetInitialUrlAsync()
{
	string uriString = string.Format(
		"{0}?client_id={1}&redirect_uri={2}&response_type={3}&scope={4}&state={5}&access_type=offline&approval_prompt=force",
		this.AuthorizeUrl.AbsoluteUri,
		Uri.EscapeDataString(this.ClientId),
		Uri.EscapeDataString(this.RedirectUrl.AbsoluteUri),
		this.AccessTokenUrl == null ? "token" : "code",
		Uri.EscapeDataString(this.Scope),
		Uri.EscapeDataString(this.RequestState));
	var url = new Uri(uriString);

	return Task.FromResult(url);
}
```
But I found that method varied per OAuth provider a bit, and I still want other changes so I didn't bother messing with the URI.