[Common] Call abort() instead of exit() in die()
Calling abort() has multiple advantages. First, it better matches the semantic of DIE(_MSG) as it signals an abnormal process termination, whereas exit() is a normal process termination (even though potentially with an error exit code). Secondly, abort() throws SIGABRT, which in turn triggers a coredump, hence the program's state can be inspected afterwards.