Maintain pageObjects while editing

This series of commits follow through a number of long overdue refactorings with the modest immediate benefit of having the json link in the footer yielding correct results on pages that have been edited.

* expose the inner loop of the journal playback as a new function to apply actions.
* update the unit tests and run them on build
* apply actions in the several places they are created
* tweek relentlessly until factory and fork work right
* manually test for other interactions

http://ward.fed.wiki.org/view/things-to-test