[SPARK-4094][CORE] checkpoint should still be available after any rdd actions

JIRA URL: [SPARK-4094](https://issues.apache.org/jira/browse/SPARK-4094)
Hi @srowen , thanks for your comment, the change is a little kind of hack. For `doCheckpointCalled`, it still keeps the point before this change. I'm just considering it might be a little wired for user that checkpoint would never work after the first time the job has been executed on the RDD. While cache() doesn't have such issue. Maybe, this is under concern of automatic checkpoint. Anyway, it would be better if this can be solved. 

@pwendell , can you share you expertise on the original design and your opinion on this? Since this is not a bug, it is only a convention for users on how to do checkpoint in spark. If the situation I listed in this JIRA is not considered to support in spark, I will close the JIRA and this PR.