Unify scriptlet execution calling conventions and error handling
- Split external scriptlet execution to separate function, called
identically with internal (ie lua) scriptlet run
- runScript() is now just a dispatcher which calls the lower level script
runner and decides whether the scriptlet failure is fatal or not.
- Only %prein and %preun scriptlet failures are considered fatal
regardless of the type of failure, as they prevent the install/erase
from taking place at all. Other failures might or might not be fatal
in terms of package functionality but rpm has no way of knowing whether
that is the case, so we only report what we know for a fact:
either the package was installed/erased or not, and either it had
scriptlet failures (for which callbacks are issued) or it didn't.