mds: recommit after commit if waiting for newer version
If there are waiters for a later version of the dir to hit
disk, then we need to recommit as soon as the prior commit
completes. We auth_pin on adding the first waiter, and do
not unpin until removing the last waiter, so this doesn't
break auth_pin rules.
Previously we could stall because we didn't finish the
waiter (on the later version) but also never started the
commit. Sometimes we would get lucky and someone else would
ask for a commit, but sometimes not. We would then see old
LogSegments that would never get fully expired.