SHAMapStore with online delete

@JoelKatz @nbougalis 

Here's a more detailed description of this effort:

    SHAMapStore: Online Delete
    Makes rippled configurable to support deletion of all data in its key-value
    store (nodestore) and ledger and transaction SQLite databases based on
    validated ledger sequence number. All records from a specified ledger
    and forward shall remain available in the key-value store and SQLite, and
    all data prior to that specific ledger may be deleted.
    
    Additionally, the administrator may require that an RPC command be
    executed to enable deletion. This is to align data deletion with local
    policy.

It could be optimized so that the ledger is only grabbed just prior to it being copied, and then gotten rid of. That would save some time for it to be in memory in case we held the last reference to it. But the ledger copy is what takes the bulk of the time during the rotate/delete process.

The alternative is something I tried earlier, and it ended up being bulky and convoluted--namely, checking to see if the LedgerMaster object existed already, to avoid dereferencing a nullptr in case of spurious wakeup from condition variable.