Leighmartell/add agent

Added support to passing agent.

## Notes to reviewer
This allows us to pass in a tunnel agent for proxy support or use a shared http agent with other modules.