build: qcom: Set QCOM_*_PATH variables for hardware/qcom-* projects

This consolidates a bunch of one-off logic scattered throughout the
code base.  Usage in Android.mk files is trivial:

At top level, use e.g. "ifeq ($(call my-dir),$(QCOM_AUDIO_PATH))".
This works for all variants, including non-variants (i.e. AOSP).

Within subdirs, use e.g. hardware/qcom/audio => $(QCOM_AUDIO_PATH)

Change-Id: Iee2497ea9a7efeb4ae9e861b84c532b19da7b69d
repopick: allow specifying a topic to pick all commits from

Change-Id: I4fb60120794a77986bf641de063a8d41f4f45a23
build: Introduce project pathmap and use it for qcom variants

The project pathmap tracks the path to the top level of a project.  The
following functions are provided:

 * project-set-path adds an entry.
 * project-set-path-variant adds a "variant" entry.
 * project-path-for retrieves an entry.

To use as a guard in Android.mk:

  ifeq ($(call my-dir),$(call project-path-for,projectname))

To use for include paths in Android.mk:

  LOCAL_C_INCLUDES += $(call project-path-for,projectname)/...

Set project pathmap for qcom project variants.

Change-Id: I8dceca72a1ba80fc7b1830c5ab285d444f530457
build: Add "dtbs" target when building the kernel

 * This is needed for 3.10

Change-Id: I4044ea9e67017452efc25097a3327141a6627c24
build: Set QCOM variants for non-QCOM_HARDWARE defined targets

* Nexus devices and others typically do not define the QCOM_HARDWARE
  flag, so the variant path should always default to the AOSP variant.
* Unconditionally set the variant to the AOSP HAL by default.

Change-Id: I714170897128f92718af266366cfcbf3136e8981
build: Use project pathmap for recovery

Change-Id: I6339ac77b899a43db21261d587252b65cb58ad79
build: Fix pathmap derp

Change-Id: Ic6070a87fb552b60e761c6dd9c515b7785ea49cb
Revert "Add the keys I used to sign the market version of Superuser."

These are obsolete.

This reverts commit 0f15d18a50d721faa8dee67f763405354025e25a.

Change-Id: I645686c5049f8651e99c95f2b775aaae2cca1f3a
build: recovery: Remove INTERNAL_RECOVERY_FILES

INTERNAL_RECOVERY_FILES picks up all packages that install files into
TARGET_RECOVERY_OUT.  This is not necessarily desirable and circumvents
the normal PRODUCT_PACKAGES mechanism.

Change-Id: I66f38a6afed7ade19a50a321d3b2d197137ba3a7
Related: http://review.cyanogenmod.org/#/c/74243/
Edify: Add/Update abort messages for some asserts

* If a bootloader or baseband assert is not satisfied, print the
  versions that are supported by the package as well as the version
  on the device.
* Changes the layout of the device assert in the edify script with some
  more line breaks.
* Cleanup the device abort message and remove extra quoting.

Change-Id: I958d49281c51bd4e60d596a727bb94cfc4a21909
repopick: support specifying a range of commits to pick

* for example: repopick 12345-12350

Change-Id: I21dd0ef5f19d7b3899fa40ec4c28a0e9dba8a4df
build: Default to dtbToolCM

* The default dtbTool isn't the correct module name for the module that
  actually lives in device/qcom/common/dtbtool

Change-Id: I80b427e3652b99742573bc4d2829e51645a8822b
build: Enable Uyghur locale

* We have a proofreader now

Change-Id: I82c4c852b2c6fcc773bdbec472e9e24dc0d5a7ea
build: recovery: Support target specific resource selection

 * Allow resources matching the target screen width to override the
   default resources.
 * Allow overriding screen width for recovery.

Change-Id: I979b6e74cfd1fe66c798de02bcd908d22731494a
Force colorsheme to SVG, since darkblue doesn't exist on X11

Change-Id: I1b9e13dd4ca63ba27a49a55d95130bdceb187669
build: Fix some colored build issues

 * Fix some broken lines in definitions.mk
 * Finish adding colors to product-graph.mk

Change-Id: I235a60c967b1f10ec6dd1cac25740badbd3b64c9
build: recovery: Support adding device-specific items

Change-Id: I25205e68282680932917016646dabd1abadbfce6
product_config: Set CM_BUILD priority above TARGET_BUILD_APPS

Even if we are doing TARGET_BUILD_APPS, we may want to use a cm
target for building.

Change-Id: Ic8053bc679fa8b726be90e611aeaacdf1850cabc