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.
Avoid to use null.
`setting.password.orNull` is better.