Rebased fix replay

I have rebased (from current development branch) and reorganised my fixes and enhancements to the replay system, including putting some magic into the files so they can be identified more readily.  Hopefully these modifications and fixes can be adopted in their entirety, as they are interlinked - removing one step may clobber later ones...

This replaces #129 entirely and I will close that one now.
Surely it is easier for user code to parse a numeric return (and to examine a second return value if they want a (may be translated) message)? E.g. Case 2 does not mean there is necessarily anything wrong with the request just that it can't be done now (instead it could wait for a sysReplayEvent with a "otherReplayOver" as a second argument...)  A return value of zero on success and non-zero on error is not an unheard of system - and as there is only one way for things to work and several ways that things don't work there is some logic to it I feel.