Bookkeeping fields: isCached, isCheckpointed; related methods: unpersist(), checkpoint().

Maintaining the two bookkeeping fields, `isCached` and `isCheckpointed`, fields is useful for implementing pipelining. The addition of the two methods accompanies because they are the only methods that modify these fields; however, we should complete the methods (properly implement checkpoint-related functionalities; add `persist()`; add tests) later, perhaps in another PR.