cache http client in New()

this is a breaking API change, so maybe we should start using gopkg.in