Adds support for bctbx openssl implementation

Merged Frederik Wedel-Heinen requested to merge bctoolbox-openssl-backend into master

Here is the full pull request for the openssl backend feature. Here's an overview of other changes I've made:

I moved some of the functionality in mbedtls.cc that could be provided by the c-api abstraction to its own source file: crypto.cc

I changed the bctbx_ssl_get_dtls_srtp_key_material api to take the ssl context as an argument instead of the ssl config, which makes more sense and fits the openssl implementation.

I changed the bctbx_ssl_config_set_ciphersuites to take a bctbx_list_t instead of a null terminated int buffer which is more safe since the old interface did not enforce the api's requirement that the cipher suite list must be a valid pointer for the life time of the config object.

I added a new api for setting key exchange algorithms: bctbx_ssl_config_set_groups and implemented the openssl backend for this.

Merge request reports