[dm-cache] merge with previous patch
[dm-cache] rename a function
[dm-cache] Fix up harmless bug in mq policies pop() function.

Currently pop() always succeeds, with up coming changes this wont be
the case.
[dm-cache] typo in comment
[dm-cache] implemented writeback_work() and set/clear_dirty() for mq policy.

There are now two multiqueues for in cache blocks.  A clean one and a
dirty one.

writeback_work comes from the dirty one.  Demotion come from the clean
one.

There are two benefits:

- Performance improvement, since demoting a clean block is a noop.
- The cache cleans itself when io load is light.
[dm-cache] comment out the bio overwrites complete block optimisation for promotion.

It's not quite right.
[dm-cache] remove some debug
[dm-cache] Change the default migration_threshold to something more suitable.
[dm-cache] core config options were not being set on the ctr line

There's only one of these atm: migration_threshold.

It was being set correctly in response to a set_config message, but
not in the ctr.

This patch factors out the common code.