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
the way I see it, it indicates what the function belongs to, and the `$$` sort of indicates that it's private --- but the naming doesn't really matter