Send-signal, payload if hook does not exit and cleanup.

* So, if "send-signal" is set in the hook.path field, a signal will be send with the repo, info, user and request. This allows to process the hook in an attached python method instead of a command /shell script that has to have the correct mode etc.

* The payload will be passed if hook does not exist.
I don't understand why this `hook_signal.send()` has a different signature than the one in line 60.  It seems to me that either way you trigger the signal, the signal_receiver will expect the same arguments to be passed in.