Implement custom tls options

This allows users of the API to either specify a simple CA-File for certificate verification, or a custom SSLContext in order for a more fine-grained control of the TLS options they want to use.

As of now, no additional tests were added, but the existing tests were changed to reflect the changes in internal methods, so that they still pass.

I have some tests available, but they were designed for another monkeypatch around this, so I'll have to take some time to adjust them for this code before I can publish them.

This pull request also contains the test fix from #160.
Rather than check for one type of argument or another, how about changing the method signature to always take a hash to pass to `OpenSSL::SSL::SSLContext#set_params`? That would remove the need for argument checking.