Add reclusive delete to OTA tools

Change-Id: Id2b72f1218366235a181f32037d774b266f78b77
kernel.mk: Allow using the "new" 4.7-linaro-a8 toolchain

Change-Id: I91675f1cd289e943454ceb61924255551298cc27
fix builds with 4.8 linaro kernel toolchains

Change-Id: I60c26d82dc941db350e15e6a2fe62b02b846bd08
Merge "Add reclusive delete to OTA tools" into kk4.4
Merge "fix builds with 4.8 linaro kernel toolchains" into kk4.4
TARGET_NEEDS_EXTRA_DEBUGGING: reduce debugging symbols unless otherwise specified

todo: tie to userdebug/user variant

Background on flags
-fomit-frame-pointer: don't generate frame pointers for leaf functions.  frees up a register.
-g builds default debugging (-g2) information into the output file for GDB use
-DNDEBUG turns off assertion macro debugging in CPP files that have included <assert.h>.
  infomration at http://oopweb.com/CPP/Documents/DebugCPP/Volume/techniques.html

Since debugging code can increase output size and reduce performance we should introduce a
variable FLAG_CPP_DEBUGGING to be introduced for userdebug/developement and release builds.
The flag may be also set in the boardconfigs of unstable devices or introduced when necessary.

PS13: Renamed master switch CFLAG
        Minimized disturbance to existing cflags (with TARGET_NEEDS_EXTRA_DEBUGGING := true, ccache from before this commit should remain valid)
        Reduce redundant definitions by defining the flags in select.mk, which includes TARGET_linux-arm.mk, and is included before llvm_config.mk

Change-Id: Ic78c547b54db4ad3e0c28e6f4092f5a5a3978d1a

Conflicts:
	core/combo/TARGET_linux-arm.mk
	core/combo/select.mk
	core/llvm_config.mk
Merge commit 'aecc260' into kk4.4