CBroker::Schedule now returns -1 on failure

This can happen if the Broker is stopping.
HandleSignal: remove caught signal from the set

This means that if the same signal is sent twice, there is no period in
which the signal appears to be ignored (between posting the call to
Stop, executing it, posting the call to HandleStop, and executing
that!). It also means that if the signal is recieved twice, the default
handler will be executed.