Force some compilers to respect volatile reads

Inspection of the generated assembly showed that before this commit, armcc 5
was optimizing away the successive reads to the volatile local variable that's
used for double-checks. Inspection also reveals that inserting a call to an
external function is enough to prevent it from doing that.

The tested versions of ARM-GCC, Clang and Armcc 6 (aka armclang) all keep the
double read, with our without a call to an external function in the middle.

The inserted function can also be changed to insert a random delay if
desired in the future, as it is appropriately places between the reads.
diff --git a/library/pk.c b/library/pk.c
index eaaa371..9eddb61 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -598,6 +598,7 @@
 
     if( ret_fi == UECC_SUCCESS )
     {
+        mbedtls_platform_enforce_volatile_reads();
         if( ret_fi == UECC_SUCCESS )
             return( 0 );
         else