fix(Http): don't setRequestHeaders before opening connection

Also included is a refactoring to prevent recreating new functions, at the expense
of creating a small amount of garbage once per request, this should be a tiny bit
less wasteful.

Closes #41
Closes #42