SSL connection support

This pull request adds support for SSL connection.

The Example of SSL connection setting is like this:
```scala
// in Config.scala 
val sslConnection = Some(SSLSocketFactory.getDefault())
```
See https://code.google.com/p/pircbotx/wiki/Features#SSL_Support for more examples of SocketFactory.
I prefer the user can use default value like:

```scala
val sslConnection: Option[SocketFactory] = None
```

Then the user doesn't need to write the config of sslConnection.