BOOKKEEPER-938 ledger digestType autodetection on open

Currently digestType verification in LedgerOpenOp seems to be treated as part of security logic.
Since it is checked after password and error explicitly states that digestType mismatched,
all that evil hacker has to do is to change digest type to another one. There are only two of them after all.

here is the scenario significantly affected by current behavior:

1. user rolls out clients with digestType set to MAC and creates lots of ledgers.
2. user notices that MAC is slower than CRC32 and decides to change digestType.
3. more ledgers created with CRC32.
4. user tries to read old and new ledgers
-> now old ledgers cannot be read because of the digest type mismatch.

Author: Andrey Yegorov <ayegorov@salesforce.com>

Reviewers: Sijie Guo <sijie@apache.org>

Closes #52 from dlg99/fix/BOOKKEEPER-938-digest-autodetect
3 files changed