dm cache: revert back to what is in 3.9-rc6

eliminates this on teardown (revisit later):
 device-mapper: cache metadata: sb_check failed: magic 0: wanted 1623043
 device-mapper: block manager: superblock validator check failed for block 0
 device-mapper: cache: could not write cache metadata.  Data loss may occur.
[dm-cache, mq policy] Be much more aggressive about promoting writes to discarded blocks.

Previously these only got priority if there were unused cache blocks.
Now we give them priority if there are any clean blocks in the cache.

The fio_soak_test now gives uniform performance across subvolumes (~16
seconds).

The new queue_empty() method is wasteful of cpu, need to improve
before pushing upstream.
dm cache: restore all changes from joe's thin-dev

not seeing the cache superblock corruption I was..