Support complex toolchains

Instead of specifying the name of the toolchain and relying on arm-eabi-
use the entire path to the custom toolchain.

Add the following line to BoardConfig.mk to use the custom toolchain for kernel
For linaro:
TARGET_KERNEL_CUSTOM_TOOLCHAIN := linaro/bin/arm-linux-gnueabihf-

For GCC 4.4.3:
TARGET_KERNEL_CUSTOM_TOOLCHAIN := arm-eabi-4.4.3/bin/arm-eabi-

Add the following to slim.dependencies to get the toolchain project.

{
    "repository": "mnm9994u/prebuilt",
    "target_path": "prebuilt",
    "branch": "master"
},

Or add the following to your local_manifest

<project name="mnm9994u/prebuilt" path="prebuilt" remote="github" revision="master" />

Change-Id: I45ed019278a1f310d6abc4c7fbfa14ddc6d184b7

Conflicts:

	core/tasks/kernel.mk
build: don't clear recovery ramdisk

Clearing recovery ramdisk removes all files place there by the
device tree and all busybox symlinks placed there by recovery

Change-Id: I19e6164856a01a83a6e2c50ef96742edcb9f570f
Add initial support for charge mode. also support recovery/root in the device tree to easily copy props into recovery images.

Change-Id: Icf773a49f2802e3b287b970a390339f1ba0c7aad

Conflicts:

	core/Makefile

Conflicts:

	tools/device/BoardConfig.mk.template
	tools/device/device.mk.template
	tools/device/mkvendor.sh
Include the primary bootloader and ramdisk in the BOOT/

This will copy over the primary bootloader (if it exists and defined)
over to the zip_root/BOOT.

This is required by encore as we need to make sure we have the correct
primary bootloader to go with the kernel.

Change-Id: I3fef417011b9c7a63109d10fc8e6794e58f73c31