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 chromium prebuilt support to envsetup.sh && The core Makefile

This adds a chromium_prebuilt function to envsetup.sh that is invoked by lunch to check
whether the chromium prebuilts are up-to-date or not. If not, it will be built from source
and then the new source built version will be pulled during brunch/mka bacon to become the
new prebuilts for future builds.

This is all opt-in through the USE_PREBUILT_CHROMIUM flag. Without it being set to 1,
none of this would be ran, and regular operations will go on.

PS13:
-use export TARGET_DEVICE
-replace git -C with params compatible to old git versions

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