Add ability to set headers on HttpRequestBuilder

We need to be able to set different header values for various requests but the only way to do it at the moment is to create a new template for each request which isn't great. This patch adds a withHeader method to HttpRequestBuilder so we can set different headers/values per request.