Ensures log recovery does not apply closed transactions

This commit adds a check in RecoveryVisitor.visit() that allows for
 transactions that are known to be applied to be skipped during
 recovery. The check happens based on the value returned by
 TransactionIdStore which, in the current implementation, is
 backed by NeoStore and thus known to be flushed on close
 before the active log is rotated, making this improvement safe.
I think flipping this comparison to `txId >= store.getLastClosedTransactionId()` makes it more readable. Also, doing so shows that the condition isn't optimal, `txId > store.getLastClosedTransactionId()` is more accurate.