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: 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
Re-evaluate the pathmap if there's a recovery variant in play

Chances are the recovery location has changed, so rebuild the pathmap
to compensate. This lets the variable be defined in BoardConfig files
instead of the global environment

Change-Id: I87c23a452656ffa7817711796c17f79e30465756

Conflicts:
	core/config.mk
build: core: Parameterize recovery with a variant

Include extra vendor config early.  If RECOVERY_VARIANT is set, use it
to look for the recovery in an alternate path.

Change-Id: Iba54f0746d728c0dfeeb67b4d3166d5e25b1b5d7

Conflicts:
	core/pathmap.mk