New patch addresses comments and fixes some other minor issues.
1) since we stored passwd and digest type on ledger metadata, if user provided wrong digest type or wrong passwd to open the ledger, why we don't fail the open request?
If the user provides the wrong password and digest to openLedger, it now fails. However, if the user configures a incorrect recovery password or digest, and the ledger has the correct password in the metadata already, no failure occurs during recovery, as all the necessary information is available.
2) ensurePasswordUsedForOldLedgers is a kind of backward compatibility test. why not move it to TestBackwardCompat? so we could know all incompatibles from a central entry.
It needs some things like #verifyFullyReplicated, which are only in BookieRecoveryTest.