Renamed Cache to Persist

The persistance layer extends the idea of the Cache to include the
memoization of the evaluation instance. This idea was already being
represented with the Cache but not explicitly. It also provides a
stronger abstraction for implementing a variety of storage mechanisms.