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.
I'm not picky about pristine git history. Your choice ;)