recovery: fix custom recoveries

This is a squashed set of commits with some updates to minimize conflict with AOSP

recovery: custom recovery build fixes

Patch by Koush

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)

Conflicts:
	core/Makefile

Patch by nemith

remove unused BOARD_USES_COMBINED_RECOVERY

Change-Id: I79520c510488d63d469b0d1a3a099420f7de1fe6

Patch by codeworkx

Change-Id: I6bcab88b76272526bdc558fbf8d7b43347bb5ef1
build: tools: add in roomservice

This is a new implementation of roomservice
use the new github search api to reduce the memory footprint, and make it less processor intensive
allow for unofficial devices to fetch dependencies. just specify your github organization

to fetch dependencies:
    add a file called 'omni.dependencies' to the root of your device tree
    an example configuration for the dependency file is:

[
  {
    "repository": "android_device_sony_common",
    "target_path": "device/sony/common"
  },
  {
    "repository": "legacybop/android_hardware_qcom_display-legacy",
    "target_path": "hardware/qcom/display-legacy",
    "revision": "omni-4.3"
  }

please note that comments can not go into this file. It must be valid json

PatchSet 7:
  add support to change port script to another team with config
  finished pep8'ing
  more checks on manifest parsing

Change-Id: I3d7a8d46d3effbb3d2480c136c9b6b6e610b9b2e
kernel.mk: Use standard toolchain paths

Change-Id: I1225fd05dcedcff03a1cf1102841cbd010b609cf
Support fetching dependencies even if device tree fails.

This is required when device tree depends on dependencies to lunch.

Change-Id: If62cd9777caf768f8070570ca0835052645c6b20
build: recovery: don't remove init.*.rc

Change-Id: Ic1e14e1e82cb28106da5b39f530e0b667377840d
core: Support GNU make 4.0 and any future releases

http://lists.gnu.org/archive/html/make-w32/2013-10/msg00021.html

Change-Id: Iaf6aa32e64269bf0368c20b0393e3fcfa540558d
updating roomservice.py to default on android-4.4 branch to be android-4.4

EDIT: removing useless comments while I thumb my nose at elitist friends
EDIT: elitist extra line removed
Change-Id: Iebf4dfc4237d6e251acb9e9d32ae1cee68e514ed
make it aosp
roomservice: Fix os.path.isdir calls

Apparently on some Python installations
it throws exception instead of returning False.

Change-Id: I9d901e3260bab411cf3466346c421594f0922562
roomservice: Add -f and --no-clone-bundle flags to repo sync

Suppress scary-looking common warnings during resolving.

Change-Id: I4337ec95992ad68ff4471b0d0b7346e933269503
Fix building custom recovery with userdebug

Credit Koushik Dutta

Change-Id: I41f1a91849f3aab435a3398696149afce68d8708
build: Don't copy APN list from emulator

This list is severely incomplete and is overwriting the proper APN list in the vendor
directory.

Change-Id: I0e1b1d26e0cdf2df9a05462f0c9343bd3115635b
Allow prebuild APK's in Vendor

Change-Id: I361c32fac1e003ec985ffe2282bf8ef922b11ac0
Make the kernel image format parametric instead of a chain of if/elses

Change-Id: I54bfcdecb8647f7bcf744e72b2de19fcf4e4e7ac
Remove PinyinIME from build

PinyinIME in AOSP is from the GB era and incredibly ugly/unpolished. No one actually uses
it compared to Google's proprietary version and other alternatives.

Change-Id: If43045d94cd9ab0f99e5f0ec58252cd20226d86a
ota: Disable downgrade check

We want users to be able to downgrade their packages.

Change-Id: I6bcbd4ee2a02640fe0855b0f1f197a02e914c927
build: Add ro.custom.device

Some devices, such as n7100, report under another product name
in ro.product.name.
As this is breaking delta updater, we introduce another variable
to retrieve the actual device name as it was used to build.

Change-Id: I96ecd189453ea9929884d094a7b846365506c397
roomservice: urgent: add "+fork:true"

Enable a device config to be found on github if it was forked

thx @cybojenix

Change-Id: Ic63f82b9ed754dcba17725f5aa75d0011896b09c
installclean: remove *.md5sum

Change-Id: Iba47421324bd6bbeabaa80eb66daf6a25621d6a2
unpackbootimg: add a target specifically for unpackbootimg

Change-Id: I8c71a56505d155f43d0776074c09404ce6f6d34b