Reduce allocations

Store temporary buffers in a sync.Pool.

Create one httpGetter per peer when Set() is called so we don't allocate
a new one on each call PickPeer().