add commit cache (feature #622)

Is this committing queued (things) or holding the queued commits? If it's the latter, then it needs to be called sth like `commitsQueued`, otherwise it means the former.