Add an integer version to the EventStore interface.
Start warning when no version is passed in to EventStore#record!
Add an EventStore#current_version query method.
Switch to using textual keys for events in LevelDB.
Store per-stream and a global version in the LevelDB Event Store.
Implement per stream versions.
Extract a ReviewableCard out of ReviewScoring.
Record intervals in CardReviewed events.
Give the card model the ability to load previous history.
Emit versions when notifying event listeners of updates.
Add a way to retreive all events for a given stream.
Avoid an infinite loop caused by side effects in an Atomic retry loop by just querying the event store for the events for a given stream when needed.
Avoid side-effecting actions inside an Atomic#update block.
Refactor slightly, and store versions in ReviewableCards.
Attempt to avoid consistency problems by not caching anything in ReviewScoring.
Use version in Event id tests in Leveldb.
Fix how we handle per stream versions--pass nil for a new stream, and the version thereafter.
Fix deck model tests to check loading previous events.
Explicitly pass in versions in EventStore examples.
Ensure that we pass in versions in ModelEditing#add_model_field!.