mini-os: get RAM base and size from the FDT
mini-os: preserve device tree when initialising MM

Move the device tree to a reserved area at the end of the RAM.
mini-os: get GIC addresses from FDT
mini-os: whitespace
mini-os: added arch_endian.h for ARM
mini-os: added ARM grant table initialisation

On x86, we get told which pages to use, but on ARM we get the base
address in the FDT and have to map each page.
mini-os: networking on ARM

Set MEM_ALIGNMENT=4 to request word-aligned memory access. However, this
does not cover all cases in lwIP, so also configure the CPU to allow
unaligned accesses.
mini-os: made off_t type signed

POSIX requires this.
mini-os: reorganised arch headers

Before, we had:

- include
- include/arm
- include/x86

Where either arm or x86 was added directly to the search path. So
<x86/arch_limits.h> was the same file as <arch_limits.h> on x86.

We now have:

- include
- arch/arm/include
- arch/x86/include

This means that only the second form is now legal. It also simplifies
installation of the headers, since we can now install everything in the
include directory without getting files for other archs.
mini-os: added make install target

This installs libminios.a, the linker script, the headers and a
pkg-config file to locate them.
mini-os: expose gnttab_table, NR_GRANT_FRAMES, etc

Needed by Mirage.
Hacks for Mirage
XXX: Debug install

Fails if export doesn't exist.
Hack: virtual -> virt