Expand the duplication checking functionality to also check for urgency
and icons. If icons are turned off in the settings the icon check is
skipped.
Icons matching is done based on the given path, if the path differs or
an icon name is used for one notification but an absolute path for
another, the icons are considered different even if they refer to the
same file.
This mostly means using strchr, but I also found:
option_parser.c:load_ini_file:
- replace multiple calls to strstr with strpbrk
notification.c:notification_init:
- replace string_replace in a while loop with a single call to
string_replace_char
redo string replace all
Move the main function to main.c in the git root to allow for
alternative main functions to be linked in its place. Specifically this
will be used to link the test runner main to run tests.