- fix failed test cases due to ledger already closed

RB_ID=128874
remove invalid readonly checking for read requests

RB_ID=129213
close entry logger file channels after syncing them
- flush write buffer to filesystem when rotating files
- close the file channels used for writing when finished syncing them to disk
- fix a findbug warning to make BufferredLogChannel as an inner static class

RB_ID=129173
 Invoke add failed callback only once during recovery
 - Invoke add failed callback only once during recovery

RB_ID=129356
data might be lost when changing ensemble in ledger recovery
- recovery uses same ledger metadata for both readEntry and addEntry. so the ensembles map would be modified due to ensemble changes in recovery add, misleading recovery read in a wrong  way causing data loss. keep a copy of ledger metadata for recovery read to avoid such bad things.

RB_ID=129537