build: core: Parameterize recovery with a variant
WE ADDED: https://github.com/CyanogenMod/android_build/commit/6b21727ef8997762d83691cb453aa950aa8d574b
...but left out this commit

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

Change-Id: Iba54f0746d728c0dfeeb67b4d3166d5e25b1b5d7
Disable canonical prefixes of system headers

GCC know a few pre-defined paths (relative to its location) to
search for headers, libraries, program, etc.  By default GCC prefixes
its own path(argv[0]) and calls realpath() which result in absolute
path with all symlink, . and .. removed.

It's usually good to have canonicalised paths, but absolute paths
in *.d file can cause unnecessary relinking when stale entries
in ccache cache hit

Add -no-canonical-prefixes (gcc>=4.6) and
-fno-canonical-system-headers (gcc>4.6) to disable realpath() on
prefixed paths

NOTE: This commit also helps reduse incorrect PATHS and
linker errors from clang, especially msm prebuilt clang

Change-Id: I58d739e61fb013015fb05a9c98b2132b307f915a
Signed-off-by: Bart Monhemius <bart4524@gmail.com>