Convenience function implementing AES-128D
Split AACS-Auth into separate function

AACS-Auth is required for bus encryption, not only VID retrieval, move
it to a separate function from _mmc_read_vid().
Function for reading data keys from drive

Bus encryption uses data keys (separate one for reads and writes) that
can be retrieved from drive after sucessful AACS-Auth. Add function to
retrieve those keys.

It seems that it requires a new AACS-Auth every time keys are being
read (at least reading the keys right after reading VID fails on my
drive).
mmc_read_data_keys(): added comment from previous commit message
(It seems that at least some drives require a new AACS-Auth every time keys are being read)
Retrieve bus encryption flags from drive and content certificate

For bus encryption to be active it must be enabled both by the drive
and the disc.
Drive certificate contains Bus Encryption Capable (BEC) flag in the
least significant bit in the second byte of the certificate.
Content certificate contains Bus Encryption Enabled (BEE) flag in the
most significant bit in the second byte of the certificate.
Retrieve both bits so it is now possible to check if bus encryption is
active (it will not be active if the disc does not enable it, even on
bus encryption drive; most discs currently do not enable it).
mmc: cache drive certificate

All drives do not support REPORT_KEY with format 0x38, so we need to
cache the certificate from aacs authentication procedure.
Added bus encryption status to aacs_info