[SPARK-2544][MLLIB] Improve ALS algorithm resource usage

Do we need to checkpoint the first RDD? If `iter` starts at `1`, we can use `iter % 3 == 0` and hence the checkpoint RDDs are `product-3`, `product-6`, `product-9`, etc.