Change store classes to new concurrency model

The semantics are as follows:

1. Multiple writers are allowed
2. After a sync begins, no further writers are allowed
3. After a sync completes, multiple readers are allowed
Added persistent atomic value class

This provides a value that can be atomically compared and swapped with respect to the on disk
storage, to facilitate persistent and durable lock free transactions.  This in itself is durable and
can recover from a failure in the middle of a compare and swap operation.
Added segment list

The segment list manages the lifecycle of a segment.  Segments have a strict sequence of state
transitions that they must follow, and the segment list both manages the datastructures and storage
for the segments, and ensures that the segment state invariants are preserved.
Added storage manager

The storage manager uses the segment list and persistent counters to provide an abstraction for a
single queue datastructure that spans multiple segments.  This structure is durable and can recover
from a crash, with some loss of just written data that had not yet been confirmed as synced.