add initial HTTP proxy support

I have added some basic support for using the WebSocket client with an HTTP proxy. Developers will pass a `TunnelingAgent` object to `WebSocketClient.prototype.connect`. `TunnelingAgent` is generated with [node-tunnel](https://github.com/koichik/node-tunnel), which does all the proxy work.

Example
```javascript
var WebSocketClient = require('websocket').client;
var client = new WebSocketClient();
var tunnel = require('tunnel');

var tunnelingAgent = tunnel.httpOverHttp({
  proxy: {
    host: 'proxy.host.com',
    port: 8080
  }
});

client.connect('ws://echo.websocket.org/',null,null,null,tunnelingAgent);
```
While this may seem more complicated than passing a `"http://proxy.host.com:8080"` string argument, I believe this gives developers the flexibility of defining all aspects of `TunnelingAgent`. (It gets complicated if you are dealing with SSL, defined certificates, and authentication.). Developers designing user applications may choose to parse out a string argument to build the `TunnelingAgent` object to fit their needs.

Thoughts?