Fix const-ness in mbedtls_param_failed()

The previous prototype gave warnings are the strings produced by #cond and
__FILE__ are const, so we shouldn't implicitly cast them to non-const.

While at it modifying most example programs:
- include the header that has the function declaration, so that the definition
  can be checked to match by the compiler
- fix whitespace
- make it work even if PLATFORM_C is not defined:
    - CHECK_PARAMS is not documented as depending on PLATFORM_C and there is
      no reason why it should
    - so, remove the corresponding #if defined in each program...
    - and add missing #defines for mbedtls_exit when needed

The result has been tested (make all test with -Werror) with the following
configurations:

- full with    CHECK_PARAMS with    PLATFORM_C
- full with    CHECK_PARAMS without PLATFORM_C
- full without CHECK_PARAMS without PLATFORM_C
- full without CHECK_PARAMS with    PLATFORM_C

Additionally, it has been manually tested that adding

    mbedtls_aes_init( NULL );

near the normal call to mbedtls_aes_init() in programs/aes/aescrypt2.c has the
expected effect when running the program.
diff --git a/include/mbedtls/platform_util.h b/include/mbedtls/platform_util.h
index 6aada21..e8fab66 100644
--- a/include/mbedtls/platform_util.h
+++ b/include/mbedtls/platform_util.h
@@ -64,7 +64,9 @@
  *              alternatively, through use of setjmp()/longjmp() can resume
  *              execution in the application code.
  */
-void mbedtls_param_failed( char* failure_condition, char* file, int line );
+void mbedtls_param_failed( const char* failure_condition,
+                           const char* file,
+                           int line );
 #endif /* MBEDTLS_CHECK_PARAMS && !MBEDTLS_PARAM_FAILED */
 
 /**