Implement kexec-hardboot

This allows performing kexec with a full hardware reboot so that the "guest"
kernel does not have to worry about reinitializing hardware states.

I've ported the patch to this Xperia M stock kernel. The hardboot page is
located at 0x88000000, which is exactly 1MiB below the ram_console.

I've tested kexec hardboot with the following parameters:
    --mem-min=0x85000000 --mem-max=0x87ffffff

Keep in mind that normally, the bootloader will append parameters (e.g. IMEI)
to the cmdline, but doing kexec will require manually appending them.

Here is a sample script that uses `sed` to do the work:

- https://gist.github.com/alvinhochun/7945270

Please refer to the following links for more information:

- https://gist.github.com/Tasssadar/6766757
- http://forum.xda-developers.com/showthread.php?p=46223952

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

Vojtech Bocek <vbocek@gmail.com>:
  I've ported it to mako and flo, it is based of my grouper port, which is
  based of Asus TF201 patche ported by Jens Andersen <jens.andersen@gmail.com>

  I've moved atags copying from guest to the host kernel, which means there
  is no need to patch the guest kernel, assuming the --mem-min in kexec call
  is within the first 256MB of System RAM, otherwise it will take a long time
  to load. I've also fixed /proc/atags entry, which would give the kexec-tools
  userspace binary only the first 1024 bytes of atags,
  see arch/arm/kernel/atags.c for more details.

  Other than that, memory-reservation code for the hardboot page and
  some assembler to do the watchdog reset on MSM chip are new for this device.

ayysir <dresadd09691@gmail.com>:
  kexec: use mem_text_write_kernel_word to set reboot_code_buffer args
  in order to avoid protection faults (writes to read-only
  kernel memory) when CONFIG_STRICT_MEMORY_RWX is enabled.

Conflicts:

	arch/arm/configs/cyanogenmod_taoshan_defconfig
Revert "Makefile: Fixes for some forbidden warnings"

This reverts commit bd635a79ebb2eefa59c89db33da3eb4026ab6493.
Fix build with sm-toolchain 4.8.x in the Makefile

-Use CC instead of REAL_CC
-Remove the wrapper, archheaders and archscripts
-Add missing-syscalls

Signed-off-by: Paul Beeler <sparksco@gmail.com>
Optimize SM style

Signed-off-by: Paul Beeler <sparksco@gmail.com>

Conflicts:
	AndroidKernel.mk
small cleanup to makefile

Signed-off-by: Paul Beeler <sparksco@gmail.com>
Update compiler flags with memory optimizations

Signed-off-by: Paul Beeler <sparksco@gmail.com>
Update compiler flags with memory optimizations

Signed-off-by: Paul Beeler <sparksco@gmail.com>

Conflicts:
	Makefile
Add option to enable graphite
Linaro 4.8 fixes
linaro 4.8 fixes
GCC 4.8 -o3 fixes

Conflicts:
	arch/arm/mach-msm/clock-generic.c
	arch/arm/mach-msm/sensors_adsp.c
	drivers/video/msm/mdss/Makefile
-o3 fix
Makefile: Align it with flo
defconfig: I don't need kexec for now