lib/parse_ini.[ch]: Simplify code

Rewrite the code that looks up the INI configuration file path (used by
the Extra-Opts feature) in order to improve readability.  The behaviour
should not have changed.
lib/parse_ini.c - Check before free, clean comment

While not likely to cause a double free, we should check that objects are not null prior to freeing, and then set to null.
Cleans up one old line of comments.
lib/parse_ini.c - Don't cast malloc(3)

Taken from M-P, but removed an additional unneeded cast to char*.
lib/parse_ini.c - Fix clang warnings

Clang is a bit more picky about loops and casting, this should resolve all compile warnings
lib/parse_ini.c - Add declaration for func

Add declaration for default_file_in_path
lib/parse_ini.c - Additional possible ini files

Added a few additional possible distro specific ini paths, reorged them for easier reading.
lib/parse_ini.c - Keep die() formatting similar

Keep all die() calls formatted the same, format strings and newlines out of translated text.
lib/parse_ini.c - check inifile before access

Added check to verifiy inifile was not null post fopen(). Should be caught by other checks though.