Makefiles: compiler option overhaul

 - Use default compiler option for HOSTCFLAGS & HOSTCXXFLAGS

   Programs that uses HOSTCFLAGS and HOSTCXXFLAGS are used to generate zImage.
   Those do not provides any speed improvements to the zImage itself,
   and can actually result in zImage corruption by using cutting-edge flags.

 - Remove "-w" flag

   The Linux kernel absolutely NEEDS "-Werror-implicit-function-declaration" flag
   for invalid function checkings.
   Assume 'main.c' is calling non-existing 'testing()'.
   "-Werror-implicit-function-declaration" will stop the compilation and forces you
   to make your kernel call the existing, "SANE" function.
   To make "-Werror-implicit-function-declaration" flag working properly, remove "-w" flag.

 - Remove "-Wno-sizeof-pointer-memaccess" flag

   The new GCC 4.8 guidelines recommends us to fix those "sizeof-pointer-memaccess" warnings
   for cleaner code generation.
   Reference : https://gcc.gnu.org/gcc-4.8/porting_to.html

 - Disable neon and enable hard-float code generation.

   Neon gives the generated code a speed bump, only noticeable for A/V(Audio / Video) calculations.
   On the other hand, hard-float(armhf) uses hardware for floating point calculation.
   Using hard-float can bump up speed upto 200%.
   So use hard-float instead of neon (both are incompatible anyways).
   This usually needs a hard-float toolchain, but since the Linux kernel is not being linked
   against any of the prebuilt toolchain's libraries, we can safely build codes
   with hard-float with soft-float toolchains.
   Reference : https://wiki.linaro.org/Linaro-arm-hardfloat

 - Use "-s" flag

   This forces GCC to generate pre-stripped codes for removing the necessity of stripping
   the binaries later.

 - Remove cutting-edge flags

   Cutting-edge flags are mostly giving less-to-none improvements and rather results in
   code corruption, alignment errors and kernel panics.
   So, remove the followings :
   -fgcse-after-reload -fgcse-sm -fgcse-las -ftree-loop-im -ftree-loop-ivcanon -fivopts

 - Add more optimization flags

   -Ofast : equivalent to -O3 -ffast-math
   -fno-tree-vectorize : recommended by Debian(https://wiki.debian.org/ArmHardFloatPort/VfpComparison)
   -fmodulo-sched -fmodulo-sched-allow-regmoves : recommended by Linaro(http://www.linaro.org/blog/android-blog/compiler-flags-used-to-speed-up-linaro-android-2011-10-and-future-optimizations)
   -funroll-loops : increases the binary size, but gives a speed bump(https://wiki.linaro.org/MichaelHope/Sandbox/CoreMark1)

 - Add "-Wno-unused" flag

   Unused variables, functions are already being stripped by GCC automatically.
   Those warnings are not necessary at all.

Signed-off-by: Park Ju Hyung <qkrwngud825@gmail.com>

Conflicts:
	Makefile