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
support partially restricted modes
Merge pull request #194 from pepijndevos/development

support partially restricted modes
ip_as_username should serve as an example
fix indentation
Merge pull request #196 from pepijndevos/development

ip_as_username should serve as an example
Add a limit to the number of connections made to irc servers

New configuration setting: conf.max_server_conns.

Limit is ignored if there is a WEBIRC password set for the server or if the server is running
in restricted mode.
Mergability with development branch
Also check ip_as_username config when applying per-server limit
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
Add (de)op/(de)voice/kick/ban options to nicklist menu
Show feedback when saving settings