Added detection for Sun Pro Compiler. Correct defines for Solaris

The only way to get POSIX semantics (IEEE Std 1003.1-2001) is by defined C99 mode.
Added atomics for Sun Pro
Solaris' vsprintf doesn't check for a NULL pointer in strlen()
strcasecmp is in <strings.h>