Add Checkpointing Support to Kodkod

* Adds Checkpointing infrastructure to Kodkod data structures
 - Adds a new type of SATSolver the CheckpointableSolver
 - Adds checkpointing to Bool2CNFTranslator
 - Adds CheckpointedSolver as a type of KodkodSolver
 - Adds Translation.Checkpointed as a type of translation
* Adds Checkpointing support to the Z3 Solver wrapper
* Adds Checkpointing support to MiniSat through solver cloning

Reviewers: @AtulanZaman @joseph2625 @mhyee