Add returncode to GeneratorError

To do this, we override sys.excepthook with a function that calls the old
sys.excepthook so the backtrace and exception are printed, but then we invoke
sys.exit with the desired return code (or 1 if not specified).
Generalize UBUNTU_* error codes to GENERATOR_*
Set return code for rosdep key resolution exceptions
Allow recovery from platform-specific rosdep key errors

If an action contains the command 'bloom-generate' and returns a specific
error code, notify the user that the generator can be skipped and the
release can continue without it.