Support HTTP / HTTPS agent

There are a few use cases of using a HTTP or HTTPS agent, including:

* Use a custom pool of sockets
* Allow use of self-signed certificates in HTTPS connections
* Add SSL client certificates and private keys

The certificate use is a very useful scenario when doing development or connecting to a self-signed HTTPS server.

References:
HTTP Agent: http://nodejs.org/api/http.html#http_class_http_agent
HTTPS Agent: http://nodejs.org/api/https.html#https_class_https_agent