Remove dm_target from cache list before freeing it

Function 'flashcache_dtr' destroys the dmc object before removing it
from the cache list. This causes a kernel oops with 'unable to handle
kernel paging request' in case the functions 'flashcache_dtr' and
'flashcache_notify_reboot' are called at the same time since the latter
tries to access memory that the first one has freed.

This patch fixes the above bug by removing the dmc object from the
cache list before deallocating it.