kernel: allow TARGET_KERNEL_MODULES to overwrite kernel modules

This is necessary to use compat-wireless since it needs to build a newer
version of cfg80211 (and sometimes mac80211) than the kernel sources version.
There are probably other instances of this type of need.

Change-Id: Ib5bf818286bc20987d8b9f9480a43f3e7690e239
kernel.mk: make use of ccache when requested

Change-Id: I9b6e28711bd5f590a76ac2b62a50b1d2de014e3e
build: show accurate information on inline kernel warnings/errors

Having the variables on AndroidBoard as suggested causes errors
with mm/mmm, whereas having them on BoardConfig doesn't. Adjust
the warnings to reflect this.

Change-Id: I554c1f1073df678d36521f73bc236a1f4b02212e
new variable TARGET_RECOVERY_FSTAB

Currently the source file recovery.fstab has to be located
in $(TARGET_DEVICE_DIR)/recovery.fstab).

To allow multiple similar CM products to share one recovery.fstab
file this patch introduces the variable TARGET_RECOVERY_FSTAB.

Change-Id: I51961f5a1665023001c9857e13008a2ca44529ee

Conflicts:
	core/Makefile
build: Stop installing the sample APN list

 * Sample APN list is always being installed, we don't want this in CM.

Change-Id: I74b97f3af545c4a7568d3001e1435c63cfbc7de8
Kernel makefiles that the stat on the system is GNU stat. GNU stat uses the "-c" option to specify format.
Darwin stat uses the "-f" option to specify format. This discrepency will cause kernel build breaks.
On my system, I symlink stat to GNU stat. This causes the "get-file-size" define
to fail.
The fix for this is to detect "gstat", aka GNU stat, and use that appropriately.

Change-Id: I987c155b7dc3ff14ffe6da40edf834ca34b7df75