added small optimization to FSStorage.readBlock to read blocks from in-memory buffer if possible