Refactor Checkpoints and add a test for it

Change List to Vector in Checkpoint.  Create new test CheckpointsSpec.
Wrap Checkpoint.fails var in an AtomicReference