fixup tests

the callback to `Channel#join` doesn't receive the new channel object as
the first argument. this was causing tests to fail. i tweaked the tests
to just use the return value of `join` instead of the parameter in the
interest of just getting the tests to pass.

ideally i would fix the argument, but that was a bit more involved, and
i just want to debug the network error problem.
correctly listen for network error events
added unit test for network error emission
enable ssl connections through IRC-js api

this allows the user to include an `ssl` hash (or bool) in the server
connection params:

```js
var irc = require('irc-js');
var bot = irc.connect({
  server: {
    address: 'chat.freenode.net',
    port: 6697,
    ssl: true // could also be: {rejectUnauthorized: false}
  },
  nick: 'aaronj1335'
}, function(bot) {
  // ...
});
```

the value defaults to false, and if it's truthy, it gets passed strait
through to [`tls.connect`][tls-connect].

a couple thoughts:

- i didn't include a unit test only because i don't know what exactly to
test, though i'm happy to implement something

- this messes with the server caching. cases where the user wants two
connections, one ssl and one not ssl to the same server/port will be
handled incorrectly. i think these are rare enough that it's safe to
ignore for now though.

[tls-connect]: http://nodejs.org/api/tls.html
Merge pull request #68 from aaronj1335/net-error-event-listener

correctly listen for network error events
Merge pull request #69 from aaronj1335/enable-ssl-support

enable ssl connections through IRC-js api