Add support for Odroid XU3

The XU3 uses a 5422 which for seL4's purposes is almost the same as
the Odroid XU's 5410.  Define a new PLAT_EXYNOS54XX to cover both.

Keep PLAT_EXYNOS5410 and ...5422 for the few places (not in the
kernel) where the difference matters.
ARM: port to GIC400

The gic400 used on the Exynos5 platforms is a little different from
the pl390, and needs a few small changes.
Merge pull request #33 from pchubb/master

Odroid XU3 support
gic_pl390.c: whitespace changes

Remove trailing whitespace, and align comments.
Derive a new IPC buffer cap when inserting into the initial threads TCB to remove mapping information

For any other thread setting the IPC buffer via TCB_Configure will result
in a derived capability being installed that does not have mapping information.
This leads to a expected behaviour that setting a new IPC buffer (even if it is
the same as the current one), will not perform an unmapping.
Remove some unused #defines.

Does not affect verification.
libsel4: Unify ARM/IA32 IPC buffer functions.

Implements two trivial functions that were present for IA32, but not included
in the corresponding ARM header.

Closes SELFOUR-226
trivial: Remove unimplemented function prototype.
trivial: Print domain values as unsigned integers in user errors.

With the comparison preceding this being done on unsigned integers, this avoids
confusing error messages like '-2147482648 >= 1'.
trivial: Standardise on 32-bit unsigned variables for domain values.

Domains are unnecessarily treated explicitly as 8-bit values within boot info.
Though there are existing proof constraints that limit the maximum domain value
to 8 bits, most of the code would permit domain values up to 32 bits. The
maximum value is unnecessarily constrained in boot info, a restriction which
this commit removes.

Closes VER-341
Merge branch mfernandez-master into master
Merge branch mfernandez-unused-defines into master
Merge pull request #38 from mfernandez/trivial

trivial: Print domain values as unsigned integers in user errors.
bf gen: Fix whitespace in constructors and getters.
bf gen: Fix missing include.

The bitfield generator uses the macros CONST and PURE which, for libsel4, are
defined in macros.h.
bf gen: Removed some undefined bit shifts.

The bitfield generator constructs tags as enums. The compiler is free to back
these by any type big enough to cover the enum. The generator emits code that
uses these tag values in mask and shift operations where the target type is
typically a uint32_t. As a result, it can produce code involving undefined
shifts like:

 (seL4_CapData_Badge & 0x1) << 31

This commit casts the tag value to the unsigned target type before masking to
ensure everything is done on an appropriate sized unsigned type.

JIRA: SELFOUR-193
libsel4: Make enum padding types one less in value so that they are INT_MAX

Having the padding types as INT_MAX + 1 means C++ compilers will end up using
a signed 64 bit integer, as that is the only type that can have a value that
large, as well as the negative values our enums typically contain
Merge branch master into experimental

Conflicts:
	include/bootinfo.h
	libsel4/include/sel4/bootinfo.h