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.
For issues -- nil is the standard we use because false is more informative for more of our return values. Though they still both evaluate to "False" in a conditional.