Squashed commit of LTO.
Changes pertaining to LTO...

- Don't use the -g flag, docs indicate using this with -flto results in undefined and unexpected behavior.

- Use linker plugin for LTO.

Conflicts:
	core/combo/TARGET_linux-arm.mk
	core/combo/select.mk

Change-Id: Idcf8f0338f14e521c787fbf01b5eaa8da73e329d
Possible LTO fixes. Use cortex-a9 CPU flag.

Conflicts:
	core/combo/arch/arm/armv7-a-neon.mk

Change-Id: Ie8281776a1b99e2534a4905434f07d8a1fd90e63
section anchors must be disabled when toplevel reorder is disabled

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