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
Turns out ffmpeg understands ppm just fine.

Accordingly, removing the png->ppm conversion
Add plugin to run strings on memory accesses

Currently splits up mem accesses just by PC, since this is easy and fast
and should not hurt.
Flush at end
new asidstory plugin.  spits out a temporal story of lifetimes of asids (cr3) at the end of a replay
better ascii graph also you can pass plugin params to be able to run volatility at a particular instr count
Reorganize taint/pirate_utils directory.
Merge branch 'master' of github.com:moyix/panda
tainted_branch, taint2: Re-engineer for compatibility.