updated GameSimulator to ignore differences where orders don't match up; test case 8 now passes.
Updated testing infrastructure to check decisions against their logged value; fixed some issues between preloading and testing; added test case 9 & 10 - 9 fails because logged decisions don't match computed ones; I'm about to investigate test case 10
fixing errors introduced in last commit
bashed two more bugs - got rid of DataNotYetSaved problem by eliminating lookups into the datasavers and caching the result (since the result may depend on iteration order, we probably shouldn't cache it); fixed a mistake in GameSimulator which hasSameOrders work incorrectly (forgot time restriction on one of the two sets of orders - which I added).  Test 10 still fails (gets out of sync) whereas Test 9 needs data replacement protocol to pass.
meant to add this to the previous commit
Several major changes.  First of all, eliminated RelaxedDataSaverControl.  Secondly, removed time argument from Describer's retrieveObject function, and removed all uses (and all attempts of Order.execute() implementations from reading from data_controls).  Thirdly: more improvements to game simulator (ability to run everything 'in order' when making a test from a log file, and using this in twoPlayerTest to compare the simulation resulting from the log file with the in-order version of itself, when anything goes wrong.

Also adding RecordKeeper (which probably should have been committed already).  Other major change: refactored GameUpdater a bit in conjunction with taking a close look at a lot of timing details; added sanity checks in saveData so that we now check that saving data only saves data when you update_to that time (this inspired a lot of the other work).  Test case 10 now passes (at least, as long as it doesn't run the whole time, because it hits a disagreement on decisions).