openssd: fix locking for assumptions that no longer holds

Forgot the assumptions I made around trans_map and block->invalid_pages, so
that I made several updates in bulk, I create a race-condition, which
unfortunately lead to pages being missing in-flight.
openssd: don't bug on no invalid pages.

We might come to a point where gc is trying to gc pages containing no
invalid pages. This shouldn't be considered a bug, but simply return
instead.
chnages for swap hint compatibility
sloppyness before commit. small fix
fixes to latency update mapping
openssd: move page and block data alloc to mempool

Use mempool for better performance and make sure we can always allocate
some mem.

Additionally, put a lock around the nvm_pool_get_block, so we fix the
race condition that might happen when two threads allocate from
nvm_pool_get_block, but only the last is set in the ap. Leading to loss
of blocks
openssd: use spin_lock for detecting if gc is running

Long running spin_locks are not wellseen. Instead, we take the lock and
set a variable to detect if gc is running.
more changes for latency hint compatibility with latest code
openssd: change to workqueue for gc
fix to gc-latency alloc bug
fix to latency trim of shaddow address
added some debug prints
openssd: move to event based gc
work work
openssd: push changes to aviad to help fix up
openssd: to aviad
openssd: increase failsafe gc pages
openssd: remember to set bio->bi_next

When iterating the list, I forgot to take the bio of the list, before it
again was sent for execution. Leading to memory leaks.
openssd: only bio_endio when succesfully mapped

We want to prevent floods when we just defer bios. Make sure that we
only end the real bio when we allocated an address for it.
openssd: remove deferred logic for submit bio again

Didn't have a need for knowing a bio was resubmitted. Lets remove the
parameter again.
lightnvm: refactoring of struct openssd to struct nvmd

To rename the project to lightnvm, I'm renaming functions and structures
that have openssd in it and replaces it with nvm.
lightnvm: also print timings

We print pool sizes, page sizes, etc. lets also print ap timings.