Support a list of expected exit codes for action steps
When running external programs in package install actions it is sometimes necessary to accept several different exit codes, and not just 0. E.g. for Visual Studio C++ Redistributable libraries, 0x666 indicates that the installer exited because a newer version is installed.