Began implementing DataThread.
Basically, DataThread is a separate thread, one per session, that handles
anything to do with the storage of data inside a running Session. In other
words, it stores all of the storage/*.{cpp,h} instances.
Removed StorageFactory, as it was simply adding extra complications on to
things. SnapshotIDs are now per-Session, rather than global. This means that
the lookup of a Snapshot from a SnapshotID is now always O(1) rather than
best-case O(1), worst-case O(n). n being the number of snapshots, of course.
A few other modifications here and there, but not very much worth noting . . .
other than the fact Aesalon is now more than 5000 lines again. (5004, to be
precise.)
17 files changed: