This method replicate a ledger fragment which is a contiguous portion of
a ledger that was stored in an ensemble that included the failed bookie.
It will Splits the fragment into multiple sub fragments by keeping the
max entries up to the configured value of rereplicationEntryBatchSize and
then it re-replicates that batched entry fragments one by one. After
re-replication of all batched entry fragments, it will update the
ensemble info with new Bookie once
lh - LedgerHandle for the ledger
lf - LedgerFragment to replicate
ledgerFragmentMcb - MultiCallback to invoke once we've recovered the current
targetBookieAddresses - New bookies we want to use to recover and replicate the ledger
entries that were stored on the failed bookie.