Make errors human readable

Change error messages from numeric codes to human readable strings. This makes debugging failures much easier.
Address CR comments and add a test
Fix error messages
Load crypto error strings
Merge pull request #59 from jroesch/better-errors

Make errors human readable
Ignore error string text

cc #65
Ignore stderr from openssl s_server
Better error handling in cert generation

Now it should correctly free all resources in case
of failure.
Merge pull request #60 from vhbit/cert-gen-cleanup

Better error handling in cert generation
Better thread working

Works pretty stable for me, although I'm not sure it is 100% thread safe yet.

Changes mostly inspired by https://www.arangodb.org/2014/07/08/started-hate-openssl :

- Switched to newer CRYPTO_THREADID API for Unixes

- Clearing errors queue before every critical operation