Expose OpenSSL initialization functions

Otherwise, commit is a logical no-op; it keeps the same OpenSSL
initialization behavior as before.  Move the SSL initialization
functionality to one place to make it easier to track.

Signed-off-by: Alan Dunn <amdunn@gmail.com>
Signed-off-by: Roger Meier <roger@apache.org>
Add ability to take control of OpenSSL initialization

Signed-off-by: Alan Dunn <amdunn@gmail.com>
Signed-off-by: Roger Meier <roger@apache.org>
Add unit test for OpenSSL manual initialization

This test checks whether Thrift leaves OpenSSL functionality available
after the last TSSLSocketFactory is destroyed when manual
initialization is set.  It uses the EVP_get_digestbyname function as
an example function that requires OpenSSL initialization to work
properly.

Signed-off-by: Alan Dunn <amdunn@gmail.com>
Signed-off-by: Roger Meier <roger@apache.org>