Improve error message in assert_null
Use only one array for tests in a suite
Always use sizeof without parentheses
Use consistent whitespace around function definitions
Free memory in destructor function

While using atexit is more portable, we are already depending on
constructor attribute. It does not make much sense not to use it for
destructing.
Zero out memory in safe_malloc

This allows for removal of a few lines of code.
Include config.h in every C file