[CORE] Avoid the "always_inline function might not be inlinable" warning.

GCC displays a warning about the fact a function may not be inlined even if
told so, if no optimization is asked for. To avoid this, as explained in the
GCC manual :
Generally, functions are not inlined unless optimization is specified. For
functions declared inline, this attribute inlines the function even if no
optimization level is specified.

Adding "inline" correct this warning.
[MAKEFILE] Override the V environment variable.

If the Xvisor makefile is called by another script or makefile defining V, it
breaks the verbosity option of the build system, concatenating its value in
front of each command.
[MAKEFILE] Use a CC preprocessor on device tree files.

Using a CC preprocessor on device tree files allows to add C header include
directives in device tree files.
Also, the device tree compiler is now set as a dependency of the dependency
file generation as it is used to create them.
[ARM] Correcting licenses.

The old license remained, set as default until the final one was approved.
[DRIVERS] i.MX6Q UART TX interrupt corrected and menuconfig option added.

If the menuconfig option is set, the TX interrupt is enabled, allowing to
sleep when the TX FIFO is full, and to be awaken when it has been cleared.
[DRIVERS] MTD integration started.
[ARM] Adding the i.MX6 SPI device in the device tree.
arm32: Fix strex inline asm compiling error.

Signed-off-by: CoryXie <cory.xie@gmail.com>
[MAKEFILE] Simplify dependency file generation.

Echoing the directory of the dependency target and then running '-MM' is not
optimized. Using '-MT' allows to specify the dependency target name.
[CORE] Add IRQ chaining entry and exit function.

The MXC GPIO driver is base on IRQ chaining, and requires this.
[DRIVERS] Adding MXC GPIO driver.

This driver is required by the i.MX SPI driver.
For now, I tried not to use the IRQ domains, and avoid the generic GPIO driver.
This driver cannot be tested yet.
[ARM] Correcting GPIO3 IRQ line definition.

Xvisor device tree format is slightly different from Linux's one.
The IRQ should be written as plain number, and not without specifying the
sharing flag nor the interrupt type.
This although can be written with these specifiers (modifying the driver
accordingly), but it would break Xvisor device tree format.

Also, the IRQ number is the IRQ line, without the 32 base IRQ offset.
[ARM] Adding the ARCH_MXC definition.

This definition is used by i.MX platform driver configuration, to ensure the
platform set is an i.MX one.
[CORE] Adding error number definitions.

The SPI driver requires some error numbers that were not yet defined.
[CORE] Adding the nano delay loop.

The nano delay loop is required by the GPIO bitbanging SPI driver.
[DRIVERS] SPI driver added.
[DRIVERS] SPI GPIO bitbanging driver added.

This driver is required by the i.MX SPI driver.
[DRIVERS] i.MX SPI driver added.

This is the i.MX SPI driver required by the Sabre Lite NOR flash driver.
This driver have not been tested yet.
[ARM] Moving the GPIO3 declaration in the i.MX6 device tree.

Since the device are initialized in the device tree order, and that the ECSPI
device driver is using the GPIO3 device, the latter must be declared before
the ECSPI devices in the device tree.
[ARM] Correcting the i.MX Sabre Lite NOR flash name.