ARM support

Add ARM support to LibVMI. This PR has been tested on Arndale with Xen 4.4:

root@linaro-nano:~/libvmi# cat /proc/cpuinfo 
processor    : 0
model name    : ARMv7 Processor rev 4 (v7l)
Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x0
CPU part    : 0xc0f
CPU revision    : 4

Hardware    : SAMSUNG EXYNOS5 (Flattened Device Tree)
Revision    : 0000
Serial        : 0000000000000000
root@linaro-nano:~/libvmi# ./examples/process-list domu
Process listing for VM domu (id=6)
Next list entry is at: c78399c0
[    0] swapper/0 (struct addr:c06748e8)
[    1] bash (struct addr:c7839740)
[    2] kthreadd (struct addr:c7839180)
[    3] ksoftirqd/0 (struct addr:c7838bc0)
[    4] kworker/0:0 (struct addr:c7838600)
[    5] kworker/0:0H (struct addr:c7838040)
[    6] kworker/u2:0 (struct addr:c7873780)
[    7] rcu_sched (struct addr:c78731c0)
[    8] rcu_bh (struct addr:c7872c00)
[    9] migration/0 (struct addr:c7872640)
[   10] khelper (struct addr:c7872080)
[   11] kdevtmpfs (struct addr:c78877c0)
[   12] kworker/u2:1 (struct addr:c7887200)
[   23] xenwatch (struct addr:c7900cc0)
[   24] xenbus (struct addr:c7900700)
[  178] writeback (struct addr:c7ac2e80)
[  180] bioset (struct addr:c7ac2300)
[  182] kblockd (struct addr:c7ad1180)
[  192] kworker/0:1 (struct addr:c79ad840)
[  203] khubd (struct addr:c7932200)
[  300] rpciod (struct addr:c7a22240)
[  313] kswapd0 (struct addr:c7b1ce80)
[  314] fsnotify_mark (struct addr:c7b1c8c0)
[  315] ecryptfs-kthrea (struct addr:c7b1c300)
[  316] nfsiod (struct addr:c7b3f740)
[  318] crypto (struct addr:c7b3ebc0)
[  847] khvcd (struct addr:c7ad1740)
[  909] kpsmoused (struct addr:c79ac700)
[  937] bioset (struct addr:c79accc0)
[  939] deferwq (struct addr:c7901840)
[  940] kworker/0:1H (struct addr:c79ad280)
[  941] jbd2/xvda-8 (struct addr:c7a23940)
[  942] ext4-rsv-conver (struct addr:c7a23380)
[  970] udevd (struct addr:c7306200)
[ 1066] sshd (struct addr:c7307340)
[ 1085] sshd (struct addr:c7900140)
[ 1087] kauditd (struct addr:c7ad0040)
My previous comment here is outdated. We can compile LibVMI on any architecture and have it introspect another. This mostly makes sense for the file driver, where we introspect an ARM memory dump on x86 or vice-verse. The Xen driver will automatically assume that the guests are at least in the same family as the host (x86,x86+PAE,IA32e || ARM).