odrefresh: Support option to run dex2oat in PVM

pvm_exec is an executable to run a command remotely, assuming the code
is also in the VM. Since the input files may not be available in the VM,
pvm_exec internally takes over the FDs and becomes a file server. In the
remote execution setup, dex2oat receives the same FD numbers, and relies
on "authfs", a FUSE client that talkes to the file server, to translate
the read/write.

By wrapping dex2oat with pvm_exec, this change makes it possible run
dex2oat remotely, though not necessarily securely. For example, a
command is not a secure interface since it allows unlimited numbers of
combination of input paramters (or even allow manipulating the
compilation, e.g. by adjusting Java property).

We'll need to change the interface later. But in the meantime, this
change will allow us to iterate more easily.

Bug: 187346876
Test: 1. Start a PVM with ART and CompOS apex mounted
      2. /apex/com.android.art/bin/odrefresh --use-compos=$CID \
         --force-compile
      # odrefresh returns successfully (though much slower right now)
Change-Id: I722e5290246e180a89f6d42d9a6bc10c79dc0d1a
2 files changed