Amazon Web Services Authenticator support

Due to CRLF inconsistencies, `git clone` performed some edits reflected in the first commit.
Could be a side effect of `git config --global core.autocrlf true` not available to the GitHub web editor.

Actual diff of changes performed:
````
diff --git a/RestSharp/RestClient.Async.cs b/RestSharp/RestClient.Async.cs
index 7e140ce..c36c150 100644
--- a/RestSharp/RestClient.Async.cs
+++ b/RestSharp/RestClient.Async.cs
@@ -80,10 +80,10 @@ public virtual RestRequestAsyncHandle ExecuteAsyncPost(IRestRequest request, Act
                private RestRequestAsyncHandle ExecuteAsync(IRestRequest request, Action<IRestResponse, RestRequestAsyncHandle> callback, string httpMethod, Func<IHttp, Action<HttpResponse>, string, HttpWebRequest> getWebRequest)
                {
                        var http = HttpFactory.Create();
-                       AuthenticateIfNeeded(this, request);
-
                        ConfigureHttp(request, http);

+                       AuthenticateIfNeeded(this, request);
+
                        var asyncHandle = new RestRequestAsyncHandle();

                        Action<HttpResponse> response_cb = r => ProcessResponse(request, r, asyncHandle, callback);
@@ -394,4 +394,4 @@ public virtual Task<IRestResponse> ExecuteTaskAsync(IRestRequest request, Cancel
                }
 #endif
        }
-}
\ No newline at end of file
+}
diff --git a/RestSharp/RestClient.Sync.cs b/RestSharp/RestClient.Sync.cs
index c688492..efa7dc0 100644
--- a/RestSharp/RestClient.Sync.cs
+++ b/RestSharp/RestClient.Sync.cs
@@ -60,7 +60,6 @@ public IRestResponse ExecuteAsPost(IRestRequest request, string httpMethod)

                private IRestResponse Execute(IRestRequest request, string httpMethod, Func<IHttp, string, HttpResponse> getResponse)
                {
-                       AuthenticateIfNeeded(this, request);

                        IRestResponse response = new RestResponse();
                        try
@@ -69,6 +68,8 @@ private IRestResponse Execute(IRestRequest request, string httpMethod, Func<IHtt

                                ConfigureHttp(request, http);

+                               AuthenticateIfNeeded(this, request);
+
                                response = ConvertToRestResponse(request, getResponse(http, httpMethod));
                                response.Request = request;
                                response.Request.IncreaseNumAttempts();
@@ -116,4 +117,4 @@ public IRestResponse<T> ExecuteAsPost<T>(IRestRequest request, string httpMethod
                }
        }
 }
-#endif
\ No newline at end of file
+#endif
````