Added an early termination signal for Services

Services can now listen for a signal which is sent whenever a job is ending because of an early termination. The early termination can be caused by either an external signal or a fatal exception. The signal gives the context, if known, under which the termination was causes. The context includes such information as the run, lumi and event number for the transition which either saw the termination or which is being terminated because another transition caused the termination.