provider: add an unquery function to allow providers to clean up.

Without this, a provider  has no way to know that an application
has finished with the array it returned earlier.  A non-caching provider
requires this information.

Fixes #12974

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12974)
diff --git a/crypto/core_algorithm.c b/crypto/core_algorithm.c
index ddb9e5a..59f6ddd 100644
--- a/crypto/core_algorithm.c
+++ b/crypto/core_algorithm.c
@@ -65,6 +65,7 @@
                 data->fn(provider, thismap, no_store, data->data);
             }
         }
+        ossl_provider_unquery_operation(provider, cur_operation, map);
 
         /* Do we fulfill post-conditions? */
         if (data->post == NULL) {