Accept a 0 exit status, or a status >127 (indicating a signal
caused the process to exit) as success.
The original intent of ignoring the exit status was that
the python executable was segfaulting after successfully
building headers.
Recently builds have been failing because people have not been
doing recursive submodule updates, and the mavlink header generation
has failed. Since we are ignoring the error the build rumbles on
and fails later with a failed #include.
This patch tightens our ignoring of a bad exit status to just
signals.
Note that the waf build system does the same check.
The rule to generate mavgen headers need to depend on the rule to check
the submodules, otherwise they can execute in parallel and the
(mavlink) submodule be updated while the headers are generated.