Make isClean() return true after clearHistory()

Fixes a bug in fec397d70d62925a3fe32e4662c3536cfa012d4d - if I understand the code correctly, we should reset `cleanGeneration` to the same generation as the new history is starting from. (Alternatively, we could just call `markClean()` from `clearHistory()`, but I wasn't sure if that made sense.)