Restrict the use of SOPC_AsymmetricKey and SOPC_Certificate structs to a single thread
@brameret found in #455 (closed) that mbedtls keys are not safe to share across threads, unless MbedTLS is compiled with pthread (or alternate threading) support. As this is tricky to ensure across all platforms we aim to support, and as other TLS libraries like OpenSSL don't always have a clear story regarding thread safety, it was decided to limit the use of SOPC_AsymmetricKey and SOPC_Certificate objects to a single thread.
To achieve that, keys and certificate are nowadays passed around in serialized form (the exact form of the serialization is an implementation detail and is not exposed to the user). As a result, two new types, SOPC_SerializedCertificate and SOPC_SerializedAsymmetricKey, are introduced, along with the corresponding APIs to create/free them etc. Those representations are safe to pass across threads, and the actual, lib-specific representation is instantiated as needed in each thread.