tickets/DM-199: Develop new master-worker result system

We certainly want cancel() to be, but I don't know if the underlying XrdSsi object can be cancelled twice. Only AndyH knows. In the mean time, I can protect the ResultReceiver so it only cancels once. The error handling in the interface isn't obvious (there is no sample code for error conditions).