Eurecom/arm

This is a forward-port of the original arm-experimental branch. It is intended to be a minimally intrusive merge between master and arm-experimental; as such, it still retains the experimental label.
It has only been tested under minimal test-cases, expect it to be full of bugs and TODOs.

As our goal is promote ARM as first-citizen target, we chose to diverge from the original branch for the following choices:
 * added the ARM target side-by-side with existing x86 targets
 * use CPUArchState over target-specific ones
 * conditionally build-protect minimal regions of target-specific code
The aim is to avoid current code duplication and merge back the core in master, to have everything in one place; arm-s2e is now a modular target like i386 and x86_64.

This branch also contains:
* five commits backport from qemu.git, needed for arm-specific bugfixes
* two host-specific hacks to workaround compilers faults experienced by Jonas

Additional warning:
* several non-core plugins have not yet been ported. 
* further target abstraction on S2E side is still to be done.
* some ugly "XXX" left to be further inspected.
* bugs inherited from original port could be lying here and there