Monitor command for recording from an existing snapshot.
pandroid: Android console now quits by asking QEMU to shut down cleanly

The standard Android console (and thus adb emu kill) quit the emulator
with a call to exit(). During record, this does not trigger end_record.
Now the console will properly shut down QEMU and cleanly end the record.
rr: command line options for recording from a snapshot and replaying

-record-from <snapshot> will load the VM state at <snapshot> and
begin a new recording at <snapshot>-rr-nondet.log
-replay <recording> will load the VM state at <recording>-rr-snp and
load the nondeterministic IO from <recording>-rr-nondet.log

-loadvm, -record-from, and -replay are mutually exclusive options
snapshots: return error codes on failure loading or saving

Also support this in RR.
Begin_replay() and begin_record() don't actually fail because of this yet.
record_from: do a new snapshot before beginning a recording

Before a recording from <snapshot>, save a new snapshot named
<snapshot>-rr-snp, so that replay will be able to load it without any
modifications.
record_from: specify both snapshot name and recording name

-record-from now takes the argument <snapshot-from>:<filename>
Add detached record/replay support.
pandroid: fix compiler warnings in Android Console

Some char*'s were missing their const specifiers
rr: don't run any guest code before beginning a record or replay

The CLI args -record-from and -replay or the equivalent monitor commands
with a VM that hasn't been started yet should skip the boot process and
go directly to loadvm. Since do_begin_record() and do_begin_replay()
are in main_loop(), we have to force the CPUs to yield instead of
running until the first interrupt.
pandroid: SD card uses temp file if no backing store specified