Make HTTP Request method a replaceable method

This allows users to use their HTTP-library-choice's methods. An advantage of this is the user may choose to use a request library that supports asynchronous HTTP requests and use that to call the AWS API