Giving MerkleIndex the ability to distiguish between "wanted" and "unwanted" key sections.
 * Synchronizer::pingRandomPeer() uses trees I'm actively syncing (wanted)
 * Synchronizer::offloadUnwatedKeys() tries to get rid of trees I don't want.
StringUtil::stlJoin() -> StringUtil::join()
Integration test improvements, including using the new improved (and with less calories!) waitFor
Passing in a scheduler into the Callbacks::init() call, so that merkle adds/removes can be done on:
 (1) a thread that isn't the write's main thread
 (2) the same thread as the merkle ping/offload.
 * #2 may go away if/when MerkleIndex/MerkleTree are made threadsafe (in which case instead of using a SchedulerThread we'd use an IExecutor), but for now I don't feel like messing with it.