clockwwork recovery build fixes

Conflicts:

	core/Makefile
Allow a device to generically define its own headers

We have a few cases of devices including specific versions of projects
just because of modified headers (msm_mdp.h comes to mind), and I just
had enough of ifdeffing header files for specific cases (the P990 needs
a lot of these).
Now... if a target defines a TARGET_SPECIFIC_HEADER_PATH, any headers in
there will take precedence over the standard ones; for example, on the
p990, I have

TARGET_SPECIFIC_HEADER_PATH := device/lge/p990/include

which makes, for example, the
device/lge/p990/include/hardware_legacy/AudioHardwareInterface.h be
used instead of
hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h
whenever a source file uses <hardware_legacy/AudioHardwareInterface.h>

Change-Id: I41b62668b60e3f62a6ebd3738d8d2675103a81e6a
ota: Build uboot bootable images when necessary
Add ext2, ext3, and vfat to releasetools

Support some non-standard partition that may be found in recovery.fstab

Change-Id: I0026a1d3ae5d432db10150d1a15f7bc8e7a6054b
Add recoveryzip target. Import recovery building/porting tools.
CWR does not support writing a partition from memory. Use /tmp to store the extracted file, then write it.
remove unused BOARD_USES_COMBINED_RECOVERY

Change-Id: I79520c510488d63d469b0d1a3a099420f7de1fe6

Conflicts:

	core/Makefile
create a target for utilities
Fix up the autoinclusion rules for the utilities and recoveryimage target.
build: Add support for assembling multi-image uboot files

Change-Id: I7300d36cc4227ada77f1800680869037ef33c5e8
Allow Device specific ramdisk address

Change-Id: If0bb3d3a2b51f87a92c0b657fbc6d0277ce53532
Extract uboot image creation from core/Makefile

http://memegenerator.net/instance/12495768

This change utilizes BOARD_CUSTOM_BOOTIMG_MK to extract out the Uboot boot and
recovery image generation out into it's own file (approx 130 lines).

This should:
    * Clean up the already huge Makefile and the keep ifdeffyness down
    * Make sure Uboot changes don't effect other builds
    * Extract a lot of code that is only for 3 devices

This depreciates BOARD_USES_UBOOT but BOARD_USES_UBOOT_MULTIIMAGE is still valid.

Boards who use uboot boot images should remove BOARD_USES_UBOOT and add
  BOARD_CUSTOM_BOOTIMG_MK := device/common/uboot-bootimg.mk
to their BoardConfig.mk
(location of the makefile is not finalized)

Change-Id: I90505a99cbcda11731ac3318cfe7f76b4bf6e1c7
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
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
fix rc file for charge mode

Change-Id: I62d881228bf309409a994d45f878d9ff331f93c1
add unpackbootimg to otatools

Change-Id: I4e294c05eacc8bef8273247bcf1bf382291a3d31
echo args

Change-Id: Ib346a27d94ccab3e992fe3bc3be9e0010e7b89a0
unpackbootimg: add a target specifically for unpackbootimg.
for some reason, and I am guessing this is a bug in the Android build, I can no longer run the following:
make -j32 out/host/darwin-x86/bin/unpackbootimg

It works if the build has been built, but not if it is clean. Somewhere within the bowels of AOSP
something broken in 4.1.2.

Change-Id: I4f8c434f3fce9ddaee4f54febba02efac07a31a3
Deprecate BOARD_FORCE_RAMDISK_ADDRESS in favor of BOARD_MKBOOTIMG_ARGS.

Change-Id: Ib587f14cb45d752356beec3998a5b956f8b09efa
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