kconfig: save values imported from environment into config file

After this patch config values imported from environment (option env="...")
also saved into .config file. The environment variable has bigger priority
than saved value. The last is used only if environment variable is undefined.

Impact of this change is minimal. This option is used only three times:
for ARCH, SRCARCH and KERNELVERSION. All of them are always defined in
environment by root Makefile, so saved values will be ignored by kconfig.

Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
kconfig: link CONFIG_CROSS_COMPILE with environment variable

Now cross-compiler tool prefix defined in environment will be saved in
.config file, so next time it might be be omitted.

Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
kconfig: get target architecture from config file

This patch makes working with kernel cross-compilation little bit easier.
After initial configuration no special environment variables are required,
because both ARCH and CROSS_COMPILE are stored in .config file:

# make ARCH=arm CROSS_COMPILE=arm-none-eabi- defconfig
# make

This especially useful together with option O=dir which allows to create
separate directory for each target architecture and kernel flavor:

# make O=out/arm ARCH=arm CROSS_COMPILE=arm-none-eabi- defconfig
# cd out/arm
# make menuconfig
# make

To avoid recursion root Makefile reads ARCH directly from .config using
scripts/config because include/config/auto.conf is not yet included here.

Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>