Portability part 1 - C99 printf

printf, sprintf, fprintf etc are now all C99 compliant. All except sprintf, which is now signaled as deprecated. This raises a few warnings about sprintf usage in the build. Some I fix with pull requests that will follow. Some others should be fixed by the respective authors.
It may be worthwhile to
```
#ifdef __GNUC__
#ifdef __GNUC_PATCHLEVEL__
#define GNUC_NEWER_PATCH(patch) (patch >= __GNUC_PATCHLEVEL__)
#else
#define GNUC_NEWER_PATCH(patch) 0
#endif
#define GNUC_NEWER(maj, min, patch) (__GNUC__ > (maj) || (__GNUC__ == (maj) && (__GNUC_MINOR__ > (min) || (__GNUC_MINOR__  == (min) && GNUC_NEWER_PATCH(patch)))))
#else
#define GNUC_NEWER(maj, min, patch) 0
#endif
```
so that you can simply condition other stuff below on
`#if GNUC_NEWER(3,0,0)`
and similar.