Adding support of dm-req-crypt

Currently Android provides disk encryption support using dm-crypt
which is based on bios. dm-crypt uses 512 bytes packet size for
crypto operations. While 512 bytes size packet is ok for SW based
disk encryption, it is inefficient for HW based crypto engines.
dm-req-crypt is similar to dm-crypt except it uses block requests
rathe bios for crypto operations. block requests when unpacked
carries data upto 512KB. Hence, HW based crypto engine can be used
more efficiently.

Change-Id: Ic541d4d1b9db4ce32465e30c5f25619a80975767
Add missing head sys/types.h to Volume.h
 Fix compile error of build with C++

Change-Id: I2dec329d23c2187d878c1244541d627c68c09a69
Signed-off-by: sndnvaps <sndnvaps@gmail.com>