Bionic optimization for Cortex A5

Change-Id: I06f29035fcfa2849b2d6f46dbfc7273312b1d136
envsetup: add a helper to fix "out/target/common" not being really common

* out/target/common isn't really common, and if you do
  back to back builds for multiple devices, that is noticable.
* Use out/target/common-$device instead, and link the appropriate
  dir to out/target/common every time lunch() is run, if
  CM_FIXUP_COMMON_OUT is set.
* Refer https://groups.google.com/forum/#!topic/android-building/ispbOgzoyg8
  for more info.

Change-Id: I11e7df0e68e2a60ce32576f06397d60fc9465b60
Custom GCC freedom,Strict Aliasing,-Os,Opt Flags

With this commit, you will be heavily modifying your build environment. What this
will do, is allow you the freedom of using any custom toolchain of your choice,
provided you follow a few simple rules.

RULE #1: Both the androideabi and armeabi toolchain folders of your choice HAVE to
be named like the following:

for androideabi, the folder has to be prefixed with: arm-linux-androideabi-
and for arm-eabi, the folder has to be prefixed with: arm-eabi-

ex:

If you want to use GCC-4.7 as your toolchain of choice, both the androideabi and
armeabi folders have to look like this:

arm-linux-androideabi-4.7
arm-eabi-4.7

If you are using linaro in which both chains are in the same folder, you will need
to clone it twice and rename one to the androideabi chain, and the other to the
arm-eabi chain.

RULE #2: The build is configured to build with GCC-4.6 by default as it's hard
coded this way. You will need to add the following lines to your Device's
BoardConfig.mk in order to initiate the custom toolchain sequence. I simply add it
to the very bottom of the BoardConfig like so:

TARGET_GCC_VERSION := 4.8

Keep in mind, that the simple number change you specify at the end will decide
which toolchain you will use.

This commit also changes your global compiler flags to -Os. -Os is an option
that enables all -O1 and -O2 options and compiles for code size which in my experience
improves functionality in that you have less memory being used which make the rom
run smoother and consume less battery.

This commit also adds 15-20 added optimization flags that I've pre-selected for best
performance with minimal (if any) cost to memory and code size.

This commit also build the entire rom using a Strict Aliasing set at the highest level
of -3 and set to error on every strict aliasing issue. Make sure that you have all the
proper strict aliasing commits needed. If you can't find them, they will either be
available to you on https://github.com/VigorCM or https://github.com/IAmTheOneTheyCallNeo

Contact me if you have any issues and I will help you when and if I can.

-Neo