Update InternalBackend API to support request modification.

This splits out the Call logic in InternalBackend into two separate methods -- NewRequest and Do. This makes it possible to extend the current backend to modify requests before sending them (e.g. to add a header). This does not change the Call interface that custom backends must implement.

I can see this being decently useful for people who want to implement e.g. pre-request logging hooks or something. At the same time, I'd be happy with another proposal that allows me to include custom headers in the request.

NOTE: This PR is based off the code in #37 

r? @cosn