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)
Now that I'm looking at it again (after a good night's sleep), this bit of code makes sense, and I see now that the type inconsistency with the allocation is not a big deal here.