Add support for client mode when constructed via SSL.newSSL(...)

Motivation:

At the moment it is not possible to use SSL in client mode with the added newSSL(...) abstraction as it will lead to a null pointer
and so segfaults. This is because we not setup our SSL object via SSLSocket and so the underlying datastructured are not set up
like expected.

Modifications:

* Store tcn_ssl_ctxt_t as data on the SSL object and use it to executed the SSL_callback_SSL_verify functions. Also add extra gards against
null pointers.
* Correctly setup seed and verify during newSSL(...)

Result:

It's now possible to also use newSSL(...) and use it for client mode
Allow to get the String representation of an error number

Motivation:

At the moment it is only possible to get the String representation of the last error by calling SSL.getLastError() which will allocate a String to return it.
Often it is cheaper to just call SSL.getLastErrorNumber() as it only returns a long and then only create the String representation of the error number if really necessary via an extra method call.

Modifications:

Add SSL.getErrorString(long) which allows to retrieve a String representation of a error number / code.

Result:

More efficient error handling possible.
Allow to get protocol version and creation time of the SSL

Motivation:

For proper implementation of SSLEngine on top of openssl we also need to be able to get the protocol version and creation time of the SSL

Modifications:

Add SSL.getVersion(long) and SSL.getTime(long)

Result:

Be able to create a proper SSLEngine based on openssl