pandroid: skip unnecessary display config checks on replay

Display type SDL changes the linesize/pitch parameter during init. This causes
replay with any other display type to fail, and required the -sdl argument to
be after the -replay command line argument.

This patch modifies the Android framebuffer device to ignore configuration
mismatches and succeed if a replay is starting.
apigen: propagate #include lines from _int to _ext so we can export types

Remove taint_processor.h from taint API. It did nothing previously, and now
breaks plugins that use the taint plugin.
bir: remove #include from internal API, so it doesn't break external API
panda: guard all android-specific actions with the -android argument flag

Non-Android guests should not break with --enable-android in configure without
-android passed as a PANDA argument. Move all Android-specific code inside
blocks guarded by whether that arugment was present.
droidscope: implement page table base (cr3) introspection on x86
droidscope: include C limit definitions in C++ code files
pandroid: fix KVM goldfish device calls
pandroid: build all non ARM-specific Android and DS code for all arches

Only ARM-specific code should be omitted from the x86 builds.
droidscope: templatize myHexStrToul so it can handle 32 and 64 bit targets

myHexStrToul is used to parse addresses from symbol tables.
This patch allows it to parse both 64 and 32 bit addresses. However, addresses
for 32-bit binaries in a 64-bit host may not parse correctly.

The function is replaced with a template and explicit instantiations for
uint32 and uint64, so that the code itself isn't duplicated. The bitswap
functions that take a bit length as an arugument are macros that are undefined
after they are used in the bitswap header to generate inline static C
functions. We define the two overloads of my_be_bswaps() that take a uint32*
and a uint64*, so that the template instantiation can use type resolution to
call the correct bitswap code for each size, and will fail to compile if
another size is used as the template parameter.
taint: enable precise_pc, it's now needed by before_block_exec
linux_vmi: move DroidScope code from core to new linux_vmi plugin

Move the Linux layer introspection API from /introspection to the linux_vmi
plugin. This means vl.c no longer has to intialize DroidScope, since the
plugin's init() function does that now.
Summary of changes:
 - configure make subdirs of {target}/panda_plugins/ for DS code, instead of
 subdirs of {target}/introspection
 - make clean wipes the files from those subdirectories. It doesn't do a
 recursive rm because the configure script makes the directories, and the
 makefile does not. Further, it wipes those specific subdirectories, and now
 deletes the pattern *.* in each directory, rather than *.
 - linux_vmi exports an API using PPP, and the fdtracker imports that API
 - DroidScope code is no longer built by Makefile.target
 - Some unused DroidScope code has been deleted instead of moved
 - Variables holding a pgd are now of type target_asid_t, which is a
 target_ulong

Note: at this time, Dalvik introspection code is included in the plugin
directory, but is not used to build the plugin.
Make config.panda one per line.
syscalls: Move generated code to the target directory.
Add panda_parse_bool to arg parsing routines.
syscalls: Separate fdtracker into a separate plugin.
taint: Add taint_pick_label to PPP API.

Allows grabbing a single random label from a labelset.
fdtracker: Add fdtracker_get_fd_name to PPP API.

Allows other plugins to look up file descriptors by read number.
Finished UAF writeup
Forgot to finish a sentence.
Update panda_ssltut.md with downgrade info

Add some verbiage on how to downgrade qcow2 images to a version PANDA supports.