Implement kexec-hardboot

"Allows hard booting (i.e., with a full hardware reboot) to a kernel previously loaded in memory by kexec.  This works around the problem of soft-booted kernel hangs due
to improper device shutdown and/or reinitialization."
More info in /arch/arm/Kconfig.

Original author: Mike Kasick <mike@kasick.org>

Ported from https://github.com/Tasssadar/android_kernel_google_msm/commit/6479ff44135011871cb6e29c92d6ce755c0faba7 by Tasssadar