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://gist.github.com/Tasssadar/7833796