Allow compile-time alternate to mbedtls_zeroize()

Add a new macro MBEDTLS_UTILS_ZEROIZE that allows users to configure
mbedtls_zeroize() to an alternative definition when defined. If the
macro is not defined, then mbed TLS will use the default definition of
the function.
diff --git a/library/utils.c b/library/utils.c
index f943cb1..3819558 100644
--- a/library/utils.c
+++ b/library/utils.c
@@ -19,10 +19,17 @@
  *  This file is part of mbed TLS (https://tls.mbed.org)
  */
 
+#if !defined(MBEDTLS_CONFIG_FILE)
+#include "mbedtls/config.h"
+#else
+#include MBEDTLS_CONFIG_FILE
+#endif
+
 #include "mbedtls/utils.h"
 
 #include <stddef.h>
 
+#if !defined(MBEDTLS_UTILS_ZEROIZE_ALT)
 /* This implementation should never be optimized out by the compiler */
 void mbedtls_zeroize( void *buf, size_t len )
 {
@@ -31,3 +38,4 @@
     while( len-- )
         *p++ = 0;
 }
+#endif /* MBEDTLS_UTILS_ZEROIZE_ALT */