## Description
CommitInfo is buffered on LeaderSchedule change and then it is flushed
on the following commit. The current issue is that it is possible for
commits to be written but not CommitInfo to be persisted to store. This
is typically okay because the recovery code in DagState should recover
all information from the last stored CommitInfo. The issue was that
until the first LeaderSchedule change there is no commit info written to
store and the code was not properly recovering `last_committed_rounds`
in DagState in this case.
Changed the code to handle recovery in the case that no commit info has
been written to store and added some additional testing for recovery.