Added test case 11, and it passes.  Notes do not indicate that this was a failure case, but it is a pretty long test (~10 minutes)
Major code quality upgrade - removed most timing variables.  The ones that now exist are passed as function parameters; no more worrying about keeping times in sync across all objects.  As a result, some functions now need the time value (no time on the object to use), but most functions lost time as a parameter.

The other major timing change is that I'm now forcing all orders onto a time grain.

Was able to remove the sanity checks in DataSaver - no longer necessary because the times to keep in sync don't exist anymore.

Adding test cases 12 and 13.  Also bashed a bug related to soldiers, resulting in test case 13 working, as well as a test startup problem related to most_recent_time in GameUpdater (I believe test 12 hit trouble with this).
many bugfixes / several new (mostly commented out) testcases; refactored GameSimulator into several files, and reorganized simulation starting code; also fixed some issues with non-timegrain aligned accesses.  Reorganization of GameSimulator required changing the log files used for testing to the new format, since SimulateAction is no longer a nested class.
updated testing framework to save after the last time the state is rolled back to a time - saves also happen before and after each iteration of the game loop.
Refactored destination to not use times (affected lots of things); creating generic data saver - not fully deployed yet though.