delete useless size in CachingFreenetStore and use isEmpty
use isEmpty instead of getSize in CachingFreenetStoreTracker and push a limited number of keys instead of one push in add
CachingFreenetStoreTracker: add "|| maxSize == 0" in the assert in add() function because if maxSize == 0 we have a queuedJob = false
use a "final int sizeBlock;" set at construction, instead of getSizeBlock() in CachingFreenetStore
CachingFreenetStore: peekKey() can change, if a block is re-added due to a collision (with overwrite=true). So push* needs to keep the key for the block it's just written, check that the blocks are equals(), check the return value from removeKey(), and THEN add the bytes to the counter.
CachingFreenetStoreTracker: add() have a lower threshold, say 90% of maxSize, when it will start a write job, but still accept the data.
CachingFreenetStore: If backDatastore.put() throws, we should probably still remove the key. We don't want to keep looping forever. This is especially important for KeyCollisionException.
CachingFreenetStore: always remove the key, even if we get IOException and check if the last version of the block are equals to the block pushed. it might have changed if there was a put() with overwrite=true. If it has changed, return 0, i.e. don't remove it
CachingFreenetStore: error in equals, correct
Trivial tidyup of code.