openssd: fix memory release and block get flow

We allocated a lot of memory when writing out pages to disk, however, we
only freed it on block recollection to the pool free list. It was a
waste of space, and became harder for the allocator. Leading to memory
errors.

Additionally, the flow of blocks gave problems in retrieving blocks
under high load. There's still some problems, but these are to be fixed
in the upcoming patches.