Sync with J1nx develop branch

This is the first part of the process of syncing with J1nx's develop tree.
The second part will include the board files and defconfigs.

An effort has been made to order (cherry-pick) the commits, squash when needed and amend the commits' descriptions.

What have been dropped ?
* TLBB recovery system
* Nand driver update (Toshiba), prefered Pivos' update to the driver (wasn't tested by me).
These Commits can be review at https://github.com/MakakLabs/linux-amlogic-m3/issues/1   

Diff against J1nx's develop tree will reveal
* The missing updates to board files and defconfigs
* Xios updates to defconfig and board files
* build_uImage.sh and env.sh changes
* Nand driver files differs
* am_gpio.c, presumably mess up in J1nx tree, see https://github.com/J1nx-Hackable-Gadgets/buildroot-linux-kernel-m3/commit/dc6d06df8293dbb119adc44d1811f887c5dc5af8#commitcomment-6232905
* Wifi drivers changes, most differs just in permissions, Pivos' update to the rtl8xxx_eu driver and cosmetics.
* sched.c cosmetics (proper EOF missing in J1nx's branch).
* saradc.c original commit was a mess as the file was missing a proper EOF
* TLBB recovery system