dm_target_crypt - rework ivgen magic, fix bug
* Add a forgotten crypto_freesession() in the destruction of the target.
* Change ivgen infrastructure to be more complete; each ivgen can now
have a ctor, a dtor and some private data.
* Change ESSIV ivgen to use its own crypto session.
* Change all the crypto stuff *not* to use an explicit key but rather
use the key with which they were initialized.
* Dispatch the actual data crypto from the ivgens, allowing the iv
generation to happen asynchronously.
Discussed-with: Matt Dillon (dillon@)