Adding ability to set a custom request library

In certain circumstances, it would be useful to add a custom request library (that conforms to the same interface as the standard request lib). 

In our case, we want to use a request library that we have modified to deal with certificate parsing for example, but it'd also be very useful for testing as it allows you to inject a stub request library.