[dm-cache] Reduce memory requirements of mq policy.

Rather than storing the cblock in an entry, we allocate all entries in
an array, and infer the cblock from the entry position.

Saves 4 bytes per cache block of memory.  In addition gives us an easy
way of looking up cache entries by cblock.

We no longer need to keep an explicit bitset to track which cblocks
have been allocated.  No searching needed to find free cblocks.
[dm-cache] missing INIT_LIST_HEAD from invalidate_cblocks patch