Mostly working SOCKS client

Not plumbed in to anything yet, though
Support for SSL connections through SOCKS proxy
Tweaking SocksConnection internals/API

SocksConnection's signature is now:
    SocksConnection({host, port, ssl}, {host, port, user, pass}).

SocksConnection now emits 'connect' rather than 'socksConnect'.

SocksConnection.destination replaced with SocksConnection.remoteAddress and .remotePort.

SocksConnection.socks removed, data is now passed by fn.bind() internally.

socksSocket errors are now emitted by SocksConnection rather than logged to the console.

The socksSocket error handler is removed once a successful connection has been established through the
SOCKS proxy.

SocksConnection is now exported.
Plumb socks.js into connection.js

Currently hard-coded not to use a SOCKS connection.
SOCKS proxy conf and integration

* Configuration details in conf.example.js
  - Can be configured to use SOCKS for all outgoing connections or
    just for specific hosts

* Integrated in to IrcConnection object

* Minor tweak to IrcConnection: use call instead of apply to avoid
  accessing the arguments object, which isn't used by
  socketConnectHandler
Refactor to use the new streams API

SocksConnection will no longer emit the socket along with the 'connect' event.

SocksConnection is now a DuplexStream and can be read/written from/to.

SSL handling no longer manually creates a SecurePair; Uses native starttls support in tls.connect.

As it now depends on the new streams API, add the node engine restriction in package.json
Fix minor omissions
Remove npm version restriction & add warning to config file
Actually remove node version restriction
Merge pull request #200 from M2Ys4U/socks

SOCKS proxy support