Add basic introspection support

Currently only process listing & current process supported
under Windows 7 x86.
Support querying whether we are in kernel mode

* Adds panda_in_kernel. Implemented for ARM & x86
* Changes llvm_trace to say whether a given BB is in kernel
Small fix to make linux-user compile (without plugins)
Add support for get_libraries in Win7 intro
Save network packets in PCAP format
Add a (disabled) plugin that tests OSI
README for the network plugin
Add prototypes
Add support for freeing allocated structs

This means we can avoid memory leaks when using OSI
Change queue_head and queue_tail to have rr prefix

Currently they are not a problem (since they are static) but if they
are made non-static in the future (for example, see one such attempt
in commit e7fd59b5b0c6e08fda92ec6804a06e1021f34ebd) queue_head will
collide with some other symbol in a way that causes *very* strange
runtime bugs.
replay: don't fail if the loadvm fails
pandroidconverter: recognize ext4 partitions

This should have no effect on the resulting images, since ext4
raw images should not require any padding. If somehow they do require padding,
they will be padded with 0 instead of 0xFF, although this should not matter
for a disk. NAND is assumed to be zeroed, which is different from disk.
pandroid: add switch to use block device config instead of NAND

"-global goldfish_nand.ext=on" will set a flag so that the NAND device
configures itselt as if it were a block device.
pandroid: don't set default partition sizes anymore, since we get them from the qcow
pandroid: documentation for ext4 images
taint: Remove unused variable warnings.
network: allow DNS server arguments that aren't in the same subnet as QEMU

There's no reason that the DNS server needs to be in the QEMU subnet.
Adding eg. ,dns=8.8.8.8 to the -net user argument should work, just like
it does for real devices.
For PANDROID, we need to add "net.dns1=<ip of nameserver>" to the kernel
arguments.
pandroidConverter: copy over the SD card too
runandroid: replace creaky bash with more robust python

The python version takes optional named arguments and has sane default values.
It can also communicate with the QEMU monitor without having to run QEMU in
the background.
Any arguments before the required image directory and API version are parsed
by the python script, and any arguments after them are passed to PANDA.
docs: mention runandroid.py in Android docs