openssd: add support for continuously running gc while reads occur.

A race condition could occur an erase on a flash block was run,
before all read references was done. Use per-cpu ref counting to
know when the block can be savely erased and returned to a block.