Check crypto footer before offering to decrypt

Verify that we have a valid footer with proper magic before
setting things up for decryption to help prevent user confusion
when dealing with data partitions that fail to mount. Also check
to make sure that the block device for /data is present.

Change-Id: Ie87818fe4505a8bf71df7d3934c114e7328ef3ca
Merge "Check crypto footer before offering to decrypt" into android-4.4
Add HTC charging LED support

Heavily inspired by Tom Hite's battery led patchset, but implemented on
a much smaller scale and limited to HTC devices.

Change-Id: I37c84de22a22596d5a03e7f29365e923cce36d87