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